Php 无法打开流:没有包含网页的文件或目录

Php 无法打开流:没有包含网页的文件或目录,php,Php,我正在尝试阅读网页的一小部分。起初,我认为问题是urlencode添加的,但问题仍然存在 该脚本在简单的链接(如google.com)上读起来很好,但是它不能与我想要的链接一起工作 <?php $link = "http://www.adidas.co.uk/nmd_r1-bape-camouflage-shoes/BA7326.html"; $newlink = urlencode($link); $linkcontents = fil

我正在尝试阅读网页的一小部分。起初,我认为问题是
urlencode
添加的,但问题仍然存在

该脚本在简单的链接(如google.com)上读起来很好,但是它不能与我想要的链接一起工作

<?php 
        $link = "http://www.adidas.co.uk/nmd_r1-bape-camouflage-shoes/BA7326.html";
        $newlink = urlencode($link);

        $linkcontents = file_get_contents($newlink);
        $needle = "Sold out";
        if(strpos($linkcontents, $needle) == true){
            echo "String found";
        } else{
            echo "String not found";
        } ?>

我正在更改我的答案,因为我做了以下代码:

$link = "http://www.adidas.co.uk/nmd_r1-bape-camouflage-shoes/BA7326.html";

// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, $link);

// $output contains the output string
$output = curl_exec($ch);

die(var_dump($output));
它给了我这样的回应

对不起,您已被阻止

您无法访问此网站

我为什么被阻止?

此网站正在使用安全服务保护自己免受在线攻击 攻击。您刚才执行的操作触发了安全设置 解决方案有几个操作可能触发此块 包括提交某个单词或短语、SQL命令或 格式错误的数据

如何解决此问题?

如果您使用个人连接,如在家中,您可以运行 在您的设备上进行防病毒扫描,以确保未感染病毒 恶意软件

如果您在办公室或共享网络,您可以询问网络 管理员在网络上运行扫描以查找 配置错误或受感染的设备

HTTP 403-禁止”


似乎您无法在Addidas网站上进行任何Web垃圾处理。

您不需要
urlencode

您试图访问的站点响应为
403禁止

file_get_contents(http://www.adidas.co.uk/nmd_r1-bape-camouflage-shoes/BA7326.html): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
这是因为
file\u get\u contents
没有从站点的角度发送格式正确的请求


您应该使用curl或另一个请求工具,如Guzzle,并发送一个格式正确的请求,该请求可以被您试图删除的站点理解(例如:Guzzle默认情况下会发送一些头,因此它应该可以工作).

远程主机可能正在筛选出没有有效标头信息的连接(例如,像用户代理)

您可以通过创建一个:


免责声明:虽然这可能在返回HTML时起作用,但远程主机执行这些检查的事实可能表明这样做违反了他们的使用条款。如果您的IP被列入黑名单,请不要怪我。

没有必要使用
urlencode
是的,我也这么认为,但它仍然会带来不同的错误。”无法打开流:HTTP请求失败!HTTP/1.0 403在中被禁止“谢谢你,伙计!我以前从未用过卷发,所以我需要习惯它。无论如何谢谢你@bsaid97没问题,如果你真的需要使用addidas网站,我想你可以通过他们的API访问你想要的信息:|如果你以前从未使用过API,可能会有点困惑,但通过一点研究,我相信你会没事的!
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2228.0 Safari/537.36\r\n"
  )
);

$ctx = stream_context_create($opts);

$content = file_get_contents($url,false,$ctx);