我正在尝试用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";
}
?>
答案 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
。