Как поместить URL в массив и искать в массиве подходящую строку? - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь найти в URL подходящую строку, но приведенный ниже фрагмент кода не работает.

<?php

$url = "http://www.drudgereport.com";

$search = "a";
$file = file($url);

if (in_array($search,$file)) {
    echo "Success!";
} else {
    echo "Can't find word.";
}

?>

Ответы [ 4 ]

2 голосов
/ 02 ноября 2011

Если вы просто ищете вхождение строки на странице, вы можете использовать

$str = file_get_contents($url);
if (strpos($str, $search) !== false) {
    echo 'Success!';
} else {
    echo 'Fail';
}
1 голос
/ 02 ноября 2011

Этот код найдет только строку с точной строкой $search (вероятно, с пробелами). Если вы анализируете HTML, проверьте PHP DOMDocument классы. Или вы можете использовать регулярные выражения, чтобы получить то, что вам нужно.

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

in_array() проверяет, равен ли элемент массива вашей игле.

Маловероятно, что многие веб-сайты будут иметь строку, равную только a.

Кроме того, allow_url_fopen включено?

0 голосов
/ 02 ноября 2011

Как говорит @alex, проверьте, что allow_url_fopen включен.
Также вы можете использовать strpos для поиска строки:

<?php

$url = "http://www.drudgereport.com";

$search = "a";
$file_content = file_get_contents($url);

if (strpos($file_content, $search) !== false) {
    echo "Success!";
} else {
    echo "Can't find word.";
}

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