Как мне сделать javascript с другого сайта, внутри приложения PHP? - PullRequest
2 голосов
/ 17 марта 2011

То, что я пытаюсь сделать, это прочитать определенную строку с веб-страницы изнутри моего PHP-приложения. Пока это моя экспериментальная установка:

      <?php
           $url = "http://www.some-web-site.com";
           $file_contents = file_get_contents($url);
           $findme   = 'text to be found';
           $pos = strpos($file_contents, $findme);
           if ($pos == false) {
                echo "The string '$findme' was not found in the string";
           } else {
                echo "The string '$findme' was found in the string";
                echo " and exists at position $pos";
           }
      ?>

Операторы "if" на данный момент содержат операторы эха, это изменится на операторы базы данных позже, текущая установка должна проверить функциональность.

В основном проблема в том, что при использовании этого метода любая java на странице возвращается как скрипт. Что мне нужно, так это текст, который скрипт должен отображать внутри браузера. Есть ли способ сделать это в PHP?

То, чего я в конечном итоге пытаюсь достичь, - это обновление акций с сайта электронной торговли путем чтения уровня запасов у поставщика сайта. Для этого поставщик не использует RSS-каналы.

Ответы [ 3 ]

2 голосов
/ 17 марта 2011

cURL не имеет анализатора JavaScript. таким образом, если контент, который вы пытаетесь прочитать, помещается на страницу через Javascript после первоначального отображения страницы, он не будет доступен через cURL.

0 голосов
/ 06 мая 2012

Вы можете получить всю веб-страницу в виде файла, подобного этому:

function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$returned_content = get_data('http://example.com/page.htm');
$my_file = 'file.htm';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
fwrite($handle, $returned_content);

Тогда я полагаю, что вы можете использовать класс, такой как объясненный в этой ссылке ниже, в качестве руководства, чтобы отделить JavaScript от HTML(его в голове теги обычно).для связанных (импортированных) файлов .js вы должны будете повторить функцию для этих URL-адресов, а также для связанных / импортированных CSS.Вы также можете получить изображения, если вам нужно сохранить их в виде файлов.http://www.digeratimarketing.co.uk/2008/12/16/curl-page-scraping-script/

0 голосов
/ 17 марта 2011

Предполагается, что результат скрипта выполнен и возвращается к вашему скрипту.PHP не поддерживает никаких функций самого веб-браузера.

Я предлагаю вам попытаться узнать о "веб-сканере" и "веб-браузерах", которые включены в .NET Framework (не PHP)

, чтобы вы могли использовать команду exec () в phpназывать это

попробуйте найти пример кода поискового робота и веб-браузеров на codeproject.com

надеюсь, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...