PDA

View Full Version : سوال: بروز شدن خودکار یک صفحه از web page دیگر



shmata
سه شنبه 29 مرداد 1392, 08:58 صبح
بنده میخوام یک بخشی از وب سایت من به صورت خودکار از یک وب سایت دیگر پرشود (بدون IFrame).
به عنوان مثال با استفاده از کد زیر من میتونم سایت www.nerkhmarja.com را فراخوانی کنم.


<?php
$homepage = file_get_contents('http://www.nerkhmarja.com/');
echo $homepage;
?>

اما من میخوام فقط بخش های مربوط به نرخ هاشو به صورت تکست داشته باشم(بدون IFrame).

hamedarian2009
سه شنبه 29 مرداد 1392, 09:27 صبح
ببینید این به کارتون میاد این کدها قیمت سهام آمریکا رو به صورت آنلاین از سایت amazon.com میگیره و در سایت شما نمایش میده


<?php
// choose stock to look at
$symbol='AMZN';
echo "<h1>Stock Quote for $symbol</h1>";
$theurl='http://www.amex.com/equities/listCmp/EqLCDetQuote.jsp?Product_Symbol=AMZN';
if (!($fp = fopen($theurl, 'r')))
{
echo 'Could not open URL';
exit;
}
$contents = fread($fp, 1000000);
fclose($fp);
//echo $contents;
// find the part of the page we want and output it
$pattern = "(\\\$[0-9 ]+\\.[0-9]+)";
if (eregi($pattern, $contents, $quote))
{
echo "$symbol was last sold at: ";
echo $quote[1];
}
else
{
echo 'No quote available';
}
// acknowledge source
echo '<br />'
.'This information retrieved from <br />'
."<a href=\"$theurl\">$theurl</a><br />"
.'on '.(date('l jS F Y g:i a T'));
?>

shmata
سه شنبه 29 مرداد 1392, 11:44 صبح
ممنون این کدها سهام آمریکا رو نمایش میده اما وقتی من نرخهای سایت www.nerkhmarja.com میزنم نمیشه . امکانش هست 1 راهنمایی دیگه ام بکنید؟ چه کارش کنم که از سایت مذکور بخونه نمایش بده. ممنون

mohsen_31369
سه شنبه 29 مرداد 1392, 14:25 عصر
با سلام
با استفاده از DOMDocument (http://www.php.net/manual/en/class.domdocument.php) اطلاعاتی رو که به صورت html دریافت می کنی رو می تونی پردازش کنی.
به عنوان مثال اطلاعات ارز در سایت مذکور درون table با کلاس maintable قرار داره.
برای جستوجو در فایل های html و xml می تونی از کلاس DOMXPath (http://php.net/manual/en/class.domxpath.php) استفاده کنی.

به عنوان مثال


$domain = "http://nerkhmarja.com";
$dom = new DOMDocument();

$dom->loadHTMLFile($domain);
$xpath = new DomXpath($dom);
$elements= $xpath->query('//table[@class="maintable "]');

if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>[". $element->nodeName. "]";

$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue. "\n";
}
}
}



XPath Syntax (http://www.w3schools.com/xpath/xpath_syntax.asp)