我想检查远程网址的页面内容。如果远程站点的页面内容包含字符串http://yahoo.com,则设置$ qqq = YH(如果不包含$ qqq = NOYH)。我不是在谈论“网页的网址”我在谈论网址的内容
$url = "'".$get['url']."'";
$needle = "http://yahoo.com/";
$contents = file_get_contents($url);
if(stripos($contents, $needle) !== false) {
$qqq = "YH";
}
但它不起作用。任何人都能用正确的语法帮助我吗?感谢..
答案 0 :(得分:2)
$url = $get['url'];
$needle = "http://yahoo.com/";
$contents = file_get_contents($url);
if(stripos($contents, $needle) !== false) {
$qqq = "YH";
echo $qqq; // <--in order to echo, you need to call echo.
}
如果你的目标只是回显YH
,如果它存在,你可以直接用它来调用,
echo "YH";
而不是将其存储到变量中。
答案 1 :(得分:1)
您的问题和标题似乎有些混乱。
要回答“如果$ url包含http://yahoo.com/”,则以下内容将执行:
$url = "'".$get['url']."'";
$needle = "http://yahoo.com/";
if(stripos($url, $needle) !== false) {
$qqq = "YH";
}
当然,您可以使用<?=$qqq?>
输出结果。
答案 2 :(得分:1)
它认为你的代码不起作用。出于多种原因:
在第一行中,您将创建一个包含单引号的字符串。基本上,$url
包含'http://url.here'
之类的内容。如果您将此传递给file_get_contents
,则会收到错误消息:
$url = "'http://www.google.com'";
echo file_get_contents($url);
Warning: file_get_contents('http://www.google.com/'): failed to open stream:
No such file or directory in ...
您说要检查$url
是否包含某个字符串。但是您正在检查URL指向的文档是否包含此字符串。
<德尔> 3。也许您的意思是$_GET
而不是$get
来检索网址中包含的参数url
?
好的,我从评论中读到你确实想在内容中搜索字符串。尽管如此,第一行代码是错误的,所以可能是:
$needle = "http://yahoo.com/";
$contents = file_get_contents($get['url']);
if(stripos($contents, $needle) !== false) {
$qqq = "YH";
}
(<?= $qqq ?>
应该按原样运行。)
答案 3 :(得分:0)
你需要调试,所以一步一步地分解它:
<?PHP
// make sure you see any errors (remove this later)
error_reporting(E_ALL);
ini_set('display_errors',1);
$url = $get['url'];
die($url);
?>
网址是否正确?
<?PHP
// make sure you see any errors (remove this later)
error_reporting(E_ALL);
ini_set('display_errors',1);
$url = $get['url'];
die(file_get_contents($url));
?>
你的脚本是否回应了来自$ url的响应?
然后继续构建并测试...
如果没有看到你的所有代码,那么这里的任何人都无法猜出你做错了什么,但是你应该轻松,有趣,并且教导你自己解决问题。
我希望这个答案会让你朝着正确的方向前进。
答案 4 :(得分:0)
确保您有PHP警告 - 无论如何,您应始终在开发环境中设置error_reporting(E_ALL)
。
确保您已允许URI作为基于fopen
的函数的参数allow_url_fopen
- http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen