Получаване на данни от друг сайт с php чрез ID

Трябва да изтегля данни от сайт, работещ в нашата локална мрежа. Това ще се използва за показване на показанията на нашите слънчеви панели.

Това е, от което трябва да извлека данните:

    <td>Gesamtertrag:</td>
  <!--<td><input type="text" size="8" id="E_Total" readonly /></td>-->
  <td><div id="E_Total"></div>
  <td><div id="uE_Total"></div></td>

         <td>P AC:</td>
     <!--<td><input type="text" size="8" id="P_AC" readonly /></td>-->
     <td><div id="P_AC"></div>
     <td><div id="uP_AC"></div></td>

Опитвах се да променя кода по-долу, за да го накарам да работи, но не успях:

<?php
$content = file_get_contents("http://www.cba.am/am/SitePages/Default.aspx");

preg_match('#<b>USD</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $content, $USDmatch);
preg_match('#<b>EUR</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $content, $EURmatch);
preg_match('#<b>GBP</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $content, $GBPmatch);

$eur = $EURmatch[3];
$usd = $USDmatch[3];
$gbp = $GBPmatch[3];

echo "EUR: $eur USD: $usd GBP: $gbp";?>

РЕДАКТИРАНЕ: Намерих кода тук: Извличане на данни от друг уебсайт с php

РЕДАКТИРАНЕ: Промених кода, публикуван от Нейтън, но той просто не ми дава никакви данни.

    <?php
$content = "http://172.25.205.56/";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $content);        
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$body= curl_exec ($ch);
curl_close ($ch);

preg_match('#<td><div id="E_Total">([0-9\.]*)</div><div id="E_Total">([0-9\.]*)</div>#Uis', $body, $USDmatch);
preg_match('#<b>EUR</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $body, $EURmatch);
preg_match('#<b>GBP</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $body, $GBPmatch);

$eur = $EURmatch[3];
$usd = $USDmatch[3];
$gbp = $GBPmatch[3];

echo "EUR: $eur USD: $usd GBP: $gbp";

?>

ИЗХОД: EUR: USD: GBP:

Може ли някой да ми даде съвет?


person user2667824    schedule 09.08.2013    source източник
comment
Откъде идва кодът, който се опитвате да промените?   -  person ಠ_ಠ    schedule 09.08.2013
comment
Може би трябва да започнете, като научите как работят регулярните изрази.   -  person putvande    schedule 09.08.2013
comment
какъв проблем имаш Просто казвам, че не работи, помогнете! не е най-добрият подход за намиране на отговори.   -  person Noelkd    schedule 09.08.2013
comment
@user2667824 вижте отговора ми   -  person Padmanathan J    schedule 09.08.2013


Отговори (1)


Използвайте Curl предназначение на file_get_contents

<?php
$content = "http://www.cba.am/am/SitePages/Default.aspx";

$ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $content);        
        curl_setopt($ch, CURLOPT_NOBODY, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $body= curl_exec ($ch);
        curl_close ($ch);

        preg_match('#<b>USD</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $body, $USDmatch);
        preg_match('#<b>EUR</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $body, $EURmatch);
        preg_match('#<b>GBP</b>(.*)<em class="w_50">([0-9\.]*)</em><em class="w_50">([0-9\.]*)</em>#Uis', $body, $GBPmatch);

        $eur = $EURmatch[3];
        $usd = $USDmatch[3];
        $gbp = $GBPmatch[3];

echo "EUR: $eur USD: $usd GBP: $gbp";


?>

Изход

EUR: 545.33 USD: 407.48 GBP: 633.63
person Padmanathan J    schedule 09.08.2013