在PHP中,使用file_get_contents&&;文件\u获取\u内容返回不同的值?
我对在PHP中,使用file_get_contents&&;文件\u获取\u内容返回不同的值?,php,string,if-statement,boolean,file-get-contents,Php,String,If Statement,Boolean,File Get Contents,我对文件的内容进行了轻度测试。目的是测试2个URL是否确实存在,然后查看它们是否都有特定的字符串 类似于: $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) )
文件的内容进行了轻度测试。目的是测试2个URL是否确实存在,然后查看它们是否都有特定的字符串
类似于:
$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
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
}
这是正常行为吗?。。。。还有其他人遇到过这种情况吗
屏幕截图:
文件获取内容
不是检查url是否存在的可靠方法。此函数为每个非2XX http响应返回false
布尔值
您最好编写自己的函数,通过套接字连接到端口80上的给定url,并分析输出或响应连接超时。您也可以使用cURL。file\u get\u contents
不是检查url是否存在的可靠方法。此函数为每个非2XX http响应返回false
布尔值
您最好编写自己的函数,通过套接字连接到端口80上的给定url,并分析输出或响应连接超时。您也可以使用cURL。file\u get\u contents
从不返回true
。
如果内容检索失败,则返回文件(或URL)内容或false
$view\u loaded\u url1
获取值true
的原因是表达式的计算如下(请参见括号):
解决方案是将操作员分组:
if(
($view_loaded_url1 = @file_get_contents($check_url1)) &&
($view_loaded_url2 = @file_get_contents($check_url2))
)
{
file\u get\u contents
从不返回true
。
如果内容检索失败,则返回文件(或URL)内容或false
$view\u loaded\u url1
获取值true
的原因是表达式的计算如下(请参见括号):
解决方案是将操作员分组:
if(
($view_loaded_url1 = @file_get_contents($check_url1)) &&
($view_loaded_url2 = @file_get_contents($check_url2))
)
{
你试过用括号吗?@Phil_1984_u没有。。。。怎么做?你试过用括号吗?@Phil_1984_u_unop。。。。怎么做?用书呆子的话来说,逻辑and(&&
)比赋值(=
)更重要。@ErickBest。。。如果至少可以获取一个URL,并且获取的内容是确定的,则为true。。。但我还是加入了小组。。。有趣的是,我以前从来没有试过一次加载两个文档。。。这是第一次,分组后效果很好。。。泰!用书呆子的话来说,逻辑and(&&
)比赋值(=
)。@ErickBest。。。如果至少可以获取一个URL,并且获取的内容是确定的,则为true。。。但我还是加入了小组。。。有趣的是,我以前从来没有试过一次加载两个文档。。。这是第一次,分组后效果很好。。。泰!这是真的,我同意你的看法,但这个答案更像是一个注释,没有实现建议的函数示例。@mike很感兴趣!。。。。你能推荐一个比文件获取内容更好的解决方案吗?(承诺向上投票)你能澄清你所说的“url存在”是什么意思吗?例如,url可以是100%有效的,而服务器端软件可能会指示请求的资源不可用,并在returnuhh?中以404响应?。。。。为什么服务器端软件会给出404?。。。你能给出一个测试用例场景吗?而文件获取内容的替代方案是现有url。。。在web浏览器中加载良好且没有问题的url这是真的,我同意你的看法,但这个答案更像是一个注释,没有实现建议的函数示例。@mike很感兴趣!。。。。你能推荐一个比文件获取内容更好的解决方案吗?(承诺向上投票)你能澄清你所说的“url存在”是什么意思吗?例如,url可以是100%有效的,而服务器端软件可能会指示请求的资源不可用,并在returnuhh?中以404响应?。。。。为什么服务器端软件会给出404?。。。你能给出一个测试用例场景吗?而文件获取内容的替代方案是现有url。。。在web浏览器中加载良好且没有问题的url