PDA

View Full Version : درخواست: کد برای ایندکس کردن یک صفحه



pesarkermooni
شنبه 12 شهریور 1390, 14:16 عصر
سلام.
خوبین؟
ببخشید یه کد میخواستم، که مثلاً آدرس یه سایت رو بهش بدیم بعد برامون اطلاعات اصلی سایت رو ایندکس کنه.
بعد اینکه میخواستم مثلاً فقط http ها رو از تو سایت دربیاره.
ممنون میشم راهنماییم کنین. من از php زیاد سر در نمیارم. ولی دارم یاد میگیرم.
ممنون میشم کمکم کنین :)

pesarkermooni
شنبه 12 شهریور 1390, 14:17 عصر
البته کدی که میخوام پیشرفته از از اینه. ولی احتمال زیاد میتونم بقیه اش رو خودم درست کنم.

Mr.Moghadam
شنبه 12 شهریور 1390, 14:25 عصر
از کتابخانه زیر میتونی استفاده کنی


PHP Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/)




// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';

pesarkermooni
یک شنبه 13 شهریور 1390, 14:24 عصر
سلام. ممنون. کد کاملی به نظر میاد. ولی من نتونستم باهاش کار کنم.
میگم که هنوز کاراموزم. میشه یکم توضیح بدین؟ چه جوری چیزی که میخوام رو میتونم پیاده کنم؟
ممنون از لطفتون :)

Mr.Moghadam
یک شنبه 13 شهریور 1390, 14:50 عصر
دقیقتر میشه توضیح بدی چی میخوای؟

pesarkermooni
یک شنبه 13 شهریور 1390, 14:55 عصر
ببینید من میخوام مثلن تو یه صفحه خاص بین یه سری کد های html یه لینک رو با مشخصات خاصی پیدا کنه بعد مثلن اونو پرینت کنه.
مشخصات لینک هم مثل دامینش یا مثلن آخرش .زیپ داره یا وسطش فلان کلمه رو داره. که اگه اینا بود اون لینک رو نشون بده.
چه جوری میتونم بهش این اطلاعات رو بدم؟ که همچین کاری بکنه؟

Mr.Moghadam
یک شنبه 13 شهریور 1390, 15:09 عصر
برای لینک به صورت زیر کارکن



foreach($html->find('a') as $element)
{
$href = $element->href . '';

// اینجا باید چک کنید ببینید خاصیت href شامل چی میشه و روش پردازش انجام بدین

}



وقتی خاصیت href رو بیرون کشیدی میتونی روش پردازش کنی ببینی دامینش چیه یا هر چی دیگه که بخوای. سرچ کنی پیدا میکنی

pesarkermooni
یک شنبه 13 شهریور 1390, 15:13 عصر
عزیز این کد رو متوجه میشم.
میرم یکم دستکاریشون کنم ببینم چی میشه.
ممنون :)

pesarkermooni
یک شنبه 13 شهریور 1390, 16:22 عصر
عزیز من الآن لینک ها و اطلاعاتی رو که از تو صفحه میخوام رو میتونم بگیرم.
چه جوری بهش دامین و و اسم و اینا بدم؟ کدهاش رو میخواستم بدونم.
یا صفحه ای که آموزش داده باشه رو میتونین بهم معرفی کنین؟
یا بگین چی سرچ کنم.

Mr.Moghadam
یک شنبه 13 شهریور 1390, 16:52 عصر
میتونی از تابع

parse_url (http://php.net/manual/en/function.parse-url.php)

استفاده کنی


<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?>

pesarkermooni
یک شنبه 13 شهریور 1390, 18:24 عصر
روم نمیشه دیگه بگم. ولی شرمنده به خدا. من بازم نفهمیدم چه جوری سر همش کنم.
اگه براتون زحمتی نیست. یه کد میشه واسم بنویسین. که این خصوصیات رو داشته باشه.
لینک هایی رو که کلمه pesarkermooni توشون هست رو + لینک هایی که اولش http://www.example.com/ هست رو واسم در بیاره؟
اینجوری فکر کنم بفهمم دیگه!!!!!!!!!!!

pesarkermooni
سه شنبه 15 شهریور 1390, 14:30 عصر
میبخشید کسی جواب نمیده؟
اگه این کد رو برام بنویسین خیلی خیلی ممنون میشم :)

pesarkermooni
چهارشنبه 16 شهریور 1390, 15:25 عصر
دوستان من مجبورم هی اسپم بذارم و هی بنویسم که چرا جواب نمیدین.
اگه کسی میتونه کمکی کنه. ممنون میشم.
کل سایتم گیر همین 1 کده!!!

pesarkermooni
شنبه 19 شهریور 1390, 10:08 صبح
چرا جواب نمیدین؟
تا کی باید صبر کنم؟

MMSHFE
شنبه 19 شهریور 1390, 11:15 صبح
روم نمیشه دیگه بگم. ولی شرمنده به خدا. من بازم نفهمیدم چه جوری سر همش کنم.
اگه براتون زحمتی نیست. یه کد میشه واسم بنویسین. که این خصوصیات رو داشته باشه.
لینک هایی رو که کلمه pesarkermooni توشون هست رو + لینک هایی که اولش http://www.example.com/ هست رو واسم در بیاره؟
اینجوری فکر کنم بفهمم دیگه!!!!!!!!!!!


$url = 'your_url';
$html = file_get_html($url);
$links = $html->find('a');
foreach($links as $link) {
$href = $link->href.'';
if(strpos($href, 'http://www.example.com/') === 0 || strpos($href, 'pesarkermooni') !== false) {
echo $href.'<br/>'."\n";
}
}
نكته: به جاي your_url آدرس موردنظر خودتون رو قرار بدين. اميدوارم مشكلتون برطرف بشه.
موفق باشيد.

pesarkermooni
شنبه 19 شهریور 1390, 13:44 عصر
$url = 'your_url';
$html = file_get_html($url);
$links = $html->find('a');
foreach($links as $link) {
$href = $link->href.'';
if(strpos($href, 'http://www.example.com/') === 0 || strpos($href, 'pesarkermooni') !== false) {
echo $href.'<br/>'."\n";
}
}
نكته: به جاي your_url آدرس موردنظر خودتون رو قرار بدين. اميدوارم مشكلتون برطرف بشه.
موفق باشيد.

عزیز خیلی خیلی ممنون از راهنماییتون.
فقط یه مشکلی هست. اونم اینکه من این کد رو که تست کردم بخش آخرش کار نمیکنه. یعنی همه لینکهایی که با example.com شروع میشن رو نشون میده. ولی اونایی رو که pesarkermooni دارن رو جدا نمیکنه! و همه رو نشون میده!
انگار این بخشش اصلا کار نمیکنه :)
از کمکتون خیلی خیلی ممنون.

pesarkermooni
شنبه 19 شهریور 1390, 14:27 عصر
مثل اینکه حل شد. ممنون. اون صفرش رو تغییر دادم درست شد.
خیلی خیلی از کمکتون ممنون. منتظر کتابهای آموزش پی اچ پی جدیدتون هم هستیم :)

MMSHFE
یک شنبه 20 شهریور 1390, 07:56 صبح
با سلام، من فكر كردم منظورتون تركيب دو شرط فوق بصورت «يا» هست، اما مثل اينكه اشتباه متوجه شدم. گويا شما ميخواين ازبين لينكهايي كه با http://www.example.com شروع ميشن، فقط اونهايي كه حاوي عبارت pesarkermooni هستن نشون داده بشه. اگه اينطوره، كافيه || رو به && تغيير بدين. موفق باشيد.