在 PHP 中,使用 file_get_contents && file_get_contents returns 不同的值?
In PHP, using file_get_contents && file_get_contents returns different values?
我正在用 file_get_contents
做一个温和的测试。目的是测试 2 urls
是否存在,然后查看它们是否都有特定的 string
。
类似于:
$check_url1 = "www.example_1.com";
$check_url2 = "www.example_2.com";
if(
$view_loaded_url1= @file_get_contents($check_url1)&&
$view_loaded_url2= @file_get_contents($check_url2) )
{
var_dump($view_loaded_url1); //RETURNS boolean true
var_dump($view_loaded_url2); //Returns the Contents of the page i.e: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Str.....etc
如何使页面的 return 成为 contents
而不是 boolean
?
因为有第二个if
来检查它们是否都包含某个string
。
类似于:
if(stristr($view_loaded_url1, 'I am the String') && stristr($view_loaded_url2, 'I am the String') {
//....This part cannot go through because $view_loaded_url1 and $view_loaded_url2 are returning different datatype
}
这是正常现象吗?....还有其他人遇到过这种情况吗?
屏幕截图:
file_get_contents
不是检查 url 是否存在的可靠方法。此函数 returns false
每个非 2XX http 响应的布尔值。
您最好编写自己的函数,通过套接字连接到端口 80 上给定的 url 并分析输出或响应连接超时。您也可以使用 cURL。
file_get_contents
从不 returns true
。
它 returns 文件(或 URL)内容或 false
如果内容检索失败。
之所以$view_loaded_url1
得到值true
是因为表达式被计算如下(见括号):
if(
$view_loaded_url1 = (@file_get_contents($check_url1) && ($view_loaded_url2 = @file_get_contents($check_url2))
)
修复方法是对运算符进行分组:
if(
($view_loaded_url1 = @file_get_contents($check_url1)) &&
($view_loaded_url2 = @file_get_contents($check_url2))
)
{
我正在用 file_get_contents
做一个温和的测试。目的是测试 2 urls
是否存在,然后查看它们是否都有特定的 string
。
类似于:
$check_url1 = "www.example_1.com";
$check_url2 = "www.example_2.com";
if(
$view_loaded_url1= @file_get_contents($check_url1)&&
$view_loaded_url2= @file_get_contents($check_url2) )
{
var_dump($view_loaded_url1); //RETURNS boolean true
var_dump($view_loaded_url2); //Returns the Contents of the page i.e: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Str.....etc
如何使页面的 return 成为 contents
而不是 boolean
?
因为有第二个if
来检查它们是否都包含某个string
。
类似于:
if(stristr($view_loaded_url1, 'I am the String') && stristr($view_loaded_url2, 'I am the String') {
//....This part cannot go through because $view_loaded_url1 and $view_loaded_url2 are returning different datatype
}
这是正常现象吗?....还有其他人遇到过这种情况吗?
屏幕截图:
file_get_contents
不是检查 url 是否存在的可靠方法。此函数 returns false
每个非 2XX http 响应的布尔值。
您最好编写自己的函数,通过套接字连接到端口 80 上给定的 url 并分析输出或响应连接超时。您也可以使用 cURL。
file_get_contents
从不 returns true
。
它 returns 文件(或 URL)内容或 false
如果内容检索失败。
之所以$view_loaded_url1
得到值true
是因为表达式被计算如下(见括号):
if(
$view_loaded_url1 = (@file_get_contents($check_url1) && ($view_loaded_url2 = @file_get_contents($check_url2))
)
修复方法是对运算符进行分组:
if(
($view_loaded_url1 = @file_get_contents($check_url1)) &&
($view_loaded_url2 = @file_get_contents($check_url2))
)
{