PHP在远程网页中搜索字符串

时间:2014-11-04 19:25:19

标签: php

我正在尝试用PHP编写一个脚本,它将打开一个文本文件./urls.txt并检查每个域的特定单词。我是PHP新手。

实施例: 在以下域中查找“Hello”一词。 列表: Domain1.LTD Domain2.LTD Domain3.LTD

只需打印出域名+有效/无效。

<?PHP
$link = "http://yahoo.com"; //not sure how to loop to read each line from a file.
$linkcontents = file_get_contents($link);

$needle = "Hello";
if (strpos($linkcontents, $needle) == false) {
echo "Valid";
} else {
echo "Invalid";
}
?>

2 个答案:

答案 0 :(得分:1)

这很有效。

<?PHP
$arrayOfLinks = array(
"http://example.com/file.txt",
"https://www.example-site-2.com/files/file.txt"
);

$needle = "Hello";

foreach($arrayOfLinks as $link){ // loop through the array

    $linkcontents = file_get_contents($link);

    if (stripos($linkcontents , $needle) !== false) { // stripos is case-insensitive search
// the needle exists in $linkcontents
// !== false instead of != false since stripos can return 0 meaning the needle is the first word of the contents
    echo "Valid";
    } else {
// the word does not exist in the given text
    echo "Invalid";
}
?>

答案 1 :(得分:0)

出于安全考虑,首先使用 CURL 支持 file_get_contents()

这是一个正确的strpos示例:

//your previous code
if (strpos($linkcontents, $needle) !== false) { // see the !==
echo "Valid"; //Needle found
} else {
echo "Invalid"; //Needle not found
}

对于更复杂的抓取,您可以使用一些regexp代替strpos