برگزیده های پرشین تولز

جستجوی سایر صفحات با استفاده از PHP

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
سلام
من می خوام یک اسکرپت بنویسم که تو تبادل لینک استفاده کنم
از اسکرپتهای آماده هم نمی خوام استفاده کنم
می خوام ببینم چطوری میشه با PHP یه صفحه رو چک کنم ببینم لینک مورد نظر اونجا هست یا نه؟
اگه به من کمک کنید ممنون می شم
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
بنظرم یک راهش میتونه این باشه:
با fopen آدرس صفحه مورد نظرت را باز کن بعد خط به خط که داری خروجی fopen را می خوانی برای هر خط مثلا با دستور eregi چک کن ببین آدرس (لینک) مورد نظرت هست داخل اون خط یا نه اگر بود که پیداش کردی و می توانی خواندن بقیه خروجی را متوقف کنی در غیر این صورت ادامه میده تا به اخر محتوای صفحه برسه .

یکجا هم میتوانی بخوانیش و یکبار با eregi چک کنی ولی فکر کنم خط به خط بخوانیش بهتر باشه.

یکراه دیگه هم دارد با Perl می توانید خیلی راحت یک html را بگیرید و با یک دستور ساده تمام لینک های موجود داخل صفحه را استخراج کنید و بعد داخل array لینک ها دنبال لینک مورد نظر بگردید .

ولی فکر کنم برای کارکوچیک که سرعت و اتلاف سیستم مهم نیست همون راه اول راحتتر باشه.
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
بنظرم یک راهش میتونه این باشه:
با fopen آدرس صفحه مورد نظرت را باز کن بعد خط به خط که داری خروجی fopen را می خوانی برای هر خط مثلا با دستور eregi چک کن ببین آدرس (لینک) مورد نظرت هست داخل اون خط یا نه اگر بود که پیداش کردی و می توانی خواندن بقیه خروجی را متوقف کنی در غیر این صورت ادامه میده تا به اخر محتوای صفحه برسه .

یکجا هم میتوانی بخوانیش و یکبار با eregi چک کنی ولی فکر کنم خط به خط بخوانیش بهتر باشه.

یکراه دیگه هم دارد با Perl می توانید خیلی راحت یک html را بگیرید و با یک دستور ساده تمام لینک های موجود داخل صفحه را استخراج کنید و بعد داخل array لینک ها دنبال لینک مورد نظر بگردید .

ولی فکر کنم برای کارکوچیک که سرعت و اتلاف سیستم مهم نیست همون راه اول راحتتر باشه.

دوست عزیر
ممنون از کمکتون
اگه راه دوم رو بیشتر توضیح بدین ممنون میشم
آخه من perl بلد نیستم
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
کد:
my $host='http://www.test.com/Updated.html';
my $h = get($host);
$p1 = HTML::TokeParser->new(\$h);

while (my $token = $p1->get_tag("a")) {
			my $url = $token->[1]{href} || "-";
			my $text = $p1->get_trimmed_text("/a");
}

این کد perl هست یک آدرس را میگیره و بعد محتوای اون صفحه گرفته شده را بر اساس تگ ها می توانید هر بلایی خواستید سرشان بیارید که اینجا من شرط گذاشتم اگر تگ a بود حالا بیا href و تسکت لینک را توی دوتا متغییر بریز ...

برای اطلاعات بیشتر به ریفرنس مراجعه کنید.
 

shahkey

Registered User
تاریخ عضویت
16 نوامبر 2005
نوشته‌ها
1,235
لایک‌ها
5
مثل همون اولی که alik گفت !
ولی اولش از strip_tags استفاده کن
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
PHP:
<?
$url = "http://...........";

$o_ch = curl_init();
curl_setopt ($o_ch, CURLOPT_URL, $url);
curl_setopt ($o_ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020921 Netscape/7.0');
curl_setopt ($o_ch, CURLOPT_HEADER, 0);
curl_setopt ($o_ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec ($o_ch);
curl_close ($o_ch);
unset($o_ch);

preg_match_all("/<a.*? href=\"(.*?)\".*?>(.*?)<\/a>/i",$html,$links);
var_export($links);
?>
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
از همه دوستان متشکرم
اگه باز هم مشکلی بود مزاحمتون میشم (پر رویی منو ببخشید)

راستی کسی نمیدونه چرا با اینکه من تو این تاپیک مشترک بودم وقتی به پستم جواب داده شد برام ایمیل نرسید؟
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
دوباره سلام

من هر کار کردم نتونستم به جایی برسم
اگه ممکنه اون قسمت مربوط به PHP رو بیشتر توضیح بدین.

ممنون از کمکتون.
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
توضيح خاصي نداره. اول با CURL سورس html صفحه رو ميخونه بعد با يك regex كل لينك ها رو ميكشه بيرون. شما بگو مشكلت كجاست تا توضيح بدم. البته حدس ميزنم ‍CURL روي سرورت نصب نيست كه در اين صورت بايد از file_get_contents يا اگه اونم نشد از توابع مربوط به socket ها استفاده كني.
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
توضيح خاصي نداره. اول با CURL سورس html صفحه رو ميخونه بعد با يك regex كل لينك ها رو ميكشه بيرون. شما بگو مشكلت كجاست تا توضيح بدم. البته حدس ميزنم ‍CURL روي سرورت نصب نيست كه در اين صورت بايد از file_get_contents يا اگه اونم نشد از توابع مربوط به socket ها استفاده كني.

راستش من گیج شدم
اگه یه مثال ساده برایم بنویسین واقعاً شرمندم می کنید
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
آقا شرمنده من حواسم به مثالی که قبلاً نوشته بدودین نبود
اونو با ای فرمان جدید آزمایش می کنم اگه جواب نداد دوباره مزاحم می شم.

از کمکتون ممنون
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
یه سؤال دیگه:
با PHP میشه IP بازدید کننده ها رو پیدا کرد؟
اگه میشه فرمانش چیه؟
 

neopersia

Registered User
تاریخ عضویت
24 سپتامبر 2006
نوشته‌ها
94
لایک‌ها
2
از همه دوستانی که به سؤال من جواب دادن تشکر می کنم.

خوشبختانه با راهنمایی شما مشکلم حل شد.

بالاخره تونستم کدی رو که می خوام بنویسم

:thumbsup: :thumbsup: :thumbsup:
 
بالا