То, что я пытаюсь сделать, – это прочитать определенную строку с веб-страницы из моего 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-каналы для этого.
cURL не имеет анализатора javascript. как таковой, если контент, который вы пытаетесь прочитать, помещается на страницу через Javascript после первоначальной рендеринга страницы, тогда он не будет доступен через cURL.
Результат скрипта предполагается выполнить и вернуться к вашему скрипту. PHP не поддерживает каких-либо особенностей самого веб-браузера.
Я предлагаю вам попробовать узнать о «веб-искателе» и «веб-браузерах», которые включены в .NET framework (а не в PHP)
так что вы можете использовать команду exec () в php для ее вызова.
попробуйте найти пример кода веб-искателя и веб-браузеров на codeproject.com
надеюсь, что это работает.
Вы можете получить всю веб-страницу в виде файла:
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/