PDA

View Full Version : آموزش: گرفتن لینک سایت خبری



green48132
سه شنبه 10 تیر 1393, 16:33 عصر
سلام دوستان چطور میتونم با php به سایت خبری مثل http://www.donya-e-eqtesad.com/ وصل بشم آیا راهی وجود داره که بشه فقط اخبار سیاسی و یا فرهنگی تو سایت نشون داد یعنی لینک رو بگیره از این سایت و تو سایت خودم نمایش بده ولی اگه کاربر خواست اون خبر رو بخونه به محض کلیک کردن روی لینک به صفحه دیگه ای از سایت خودم هدایت بشه و متن کامل رو بخونه؟ ممنون میشم در این مورد کمکم کنید

2undercover
سه شنبه 10 تیر 1393, 17:44 عصر
لینک خبر های یک موضوع رو که از قسمت RSS می تونید با PHP بگیرید و برای گرفتن متن کامل خبر می تونید اول خودتون بفمید که متن کامل خبر توی چه تگی هست و با پردازش صفحه ی خبر متن کامل رو در بیارید.

green48132
سه شنبه 10 تیر 1393, 17:59 عصر
ممنون میشم اگه با کد مثل بزنید درست متوجه نشدم چی گفتین

Mohammadsgh
سه شنبه 10 تیر 1393, 18:15 عصر
با curl هم میتونید این کار رو انجام بدید.این لینک (http://ir2.php.net/manual/en/book.curl.php)رو بررسی کنید:لبخندساده:

2undercover
سه شنبه 10 تیر 1393, 18:35 عصر
مثلا به کد های این تاپیک نگاه کنید:

http://barnamenevis.org/showthread.php?429371

که البته مربوط به یک سایت دیگه هست و از RSS برای پیدا کردن لینک استفاده نشده و مستقیما از توی صفحه اصلی لینک ها رو پیدا می کنه.

مهرداد سیف زاده
سه شنبه 10 تیر 1393, 18:46 عصر
لینک زیر رو در مرورگر خودتون باز کنید
http://www.donya-e-eqtesad.com/news/812102/

سورس صفحه رو یه نگاهی بندازید و یا به کمک inpectElement محل تگهایی که خبر در اون قرار گرفته رو پیدا کنید
مثلا برای این سایت که فرمودید محتوای خبر در بین تگهای زیر قرار گرفته


<div id="content">محتوای خبر شامل عکس
</div>




بعد از این که سورس صفحه رو گرفتید حالا چه با curl و یا روشهای دیگه از طریق
و بعد از اون باید نقطه شروع و پایان رو محاسبه کنید و اندزه شو بدست بیارید و substr کنید تا کل خبر رو برداشت کنید
یه نمونه کد رو در زیر نوشتم که میتونید اجرا بگیرید

<?php$page = file_get_contents('http://www.donya-e-eqtesad.com/news/812102/');


$start = strpos($page, '<div id="content">');
$end = strpos($page, '<div id="sidebar">');
$length = $end-$start;
$rest = substr($page, $start, $length);


echo $rest;
?>

mahmod2000
سه شنبه 10 تیر 1393, 19:52 عصر
یک نمونه کد که قبلا نوشتم برای دریافت اخبار از آر اس اس. این نسخه سادش هست البته


<html>
<head>
<meta charset="UTF-8">
<title>صفحه آر اس اس خوان</title>
</head>
<body>
<?php
function getFeedReader($address, $limit) {
set_time_limit(0);
$xml = $address;

/*
* baraye namayesh Khata HTMLDOM - Agar address eshtebah bod peigham : File not found. exiting. mide
*/
libxml_use_internal_errors(true);
$xmlDoc = new DOMDocument();
@$xmlDoc->load($xml);
if (strpos($http_response_header[0], '404')) {
die('File not found. exiting.');
}


$x = $xmlDoc->getElementsByTagName('item');

//$count = $x->length;


// get last news

/*
* @var = $array : baraye injad array ke dar akhare halghe dar morede namayesh mataleb estefade mishe..
*/
$array = array();

for ($i = 0; $i < $limit; $i++) {
/*
* daryafte title - link - description az Rss
*/
@$item_title = $x->item($i)->getElementsByTagName('title');
@$item_title = $item_title->length > 0 ? $item_title->item(0)->nodeValue : '';
@$item_link = $x->item($i)->getElementsByTagName('link');
@$item_link = $item_link->length > 0 ? $item_link->item(0)->nodeValue : '';
@$item_desc = $x->item($i)->getElementsByTagName('description');
@$item_desc = $item_desc->length > 0 ? $item_desc->item(0)->nodeValue : '';
/* Daryafte Nevisande News -- niazi nist behesh
$item_auth = $x->item($i)->getElementsByTagName('author');
$item_auth = $item_auth->length > 0 ? $item_auth->item(0)->nodeValue : '';
*/


$array[] = $item_title . '<br /> ' . $item_link . '<br />' . $item_desc . '<br /><hr />';

}
return $array;
}
?>
</body>
</html>



نمونه استفاده:


$feed = getFeedReader('http://www.pana.ir/Rss/GetNewsRss.aspx?c=148', '5');
foreach ($feed as $feeds)
{
echo $feeds;
}