Как извлечь только определенные данные с помощью file_get_contents - PullRequest
0 голосов
/ 26 ноября 2011

Как я могу использовать file_get_contents() для извлечения определенной части переменной $homepage?

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

Ответы [ 3 ]

1 голос
/ 26 ноября 2011

Ваш вопрос задают не очень часто, однако на абстрактном уровне я считаю, что вы ищете уроки по манипуляции со строками :) Вот несколько ссылок, которыми я делюсь,

Кстати, все зависит от того, что именно вы хотите извлечь,Если бы вы могли более подробно остановиться на подробном вопросе, который поможет нам ответить на ваш вопрос !!

ура

PS: СКРИПИНГ ЭКРАНА - ПЛОХАЯ ИДЕЯ, ЕСЛИ ВЫ НЕ СКАЧИВАЕТЕ СВОЮ СОБСТВЕННУЮ ВЕБ-СТРАНИЦУ(КОТОРЫЙ ДОСЕНТ ДЕЙСТВИТЕЛЬНО СМЫСЛ :)).ПРИЧИНА, КОТОРЫЙ ВЫ НИКОГДА НЕ ЗНАЕТЕ, КОГДА WWW.EXAMPLE.COM НАМЕРЕН ИЗМЕНЯТЬСЯ, И ВАША ЛОГИКА МАНИПУЛЯЦИИ НЕ БУДЕТ БОЛЬШЕ ПОЛЕЗНОЙ

0 голосов
/ 30 мая 2013

Вот пример с регулярными выражениями и PHP.

<?php
$f = file_get_contents ("http://www.example.com");
$f = preg_replace ("(\&nbsp;|\r|\n|\t)", "", $f); // optional
$f = preg_replace ("/\s\s+/", " ", $f); // optional spaces

if (preg_match ("/<h1>(.*)<\/h1>/", $f, $res)) {
    $data = $res [1];
}

echo $data;
?>
0 голосов
/ 26 ноября 2011

Лучшим решением, вероятно, является обработка переменной $homepage после ее загрузки. Посмотрите на строковые функции и регулярные выражения .

file_get_contents() поддерживает параметры offset и maxlen, которые можно использовать для управления тем, какие части файла загружаются, но offset имеет поведение, описанное в документации как «непредсказуемое» при использовании в нелокальных файлах как в вашем примере.

Тем не менее, maxlen, вероятно, безопасно, так что вы можете использовать это, чтобы обрезать конец, если вы знаете, что то, что вы хотите, будет в первых N кусочках файла. Итак, если вы уверены, что вам нужны только первые 100 байт домашней страницы, вы можете сделать что-то вроде file_get_contents ( 'http://www.example.com/', false, NULL, -1, 100). Но если вы не хотите точно первые 100 байтов, вам все равно придется выполнить некоторую постобработку.

См. http://php.net/manual/en/function.file-get-contents.php для получения дополнительной информации.

...