Php 我有一个curl,可以在localhost中使用,但不能在livewebsite中使用。我不明白为什么

Php 我有一个curl,可以在localhost中使用,但不能在livewebsite中使用。我不明白为什么,php,curl,Php,Curl,我有这个链接 ,该网站实际存在 这在检查页面是否存在的curl代码中起作用 它在我的本地主机代码中工作,但在我的live网站中不断失败 我已经使用其他域进行了测试,例如,它一直在我的本地主机和我的live网站上工作 我逐字复制了这个密码 我不明白为什么这个特定的url会失败 我的网站由site5托管 我注意到这一行的值一直是false(布尔值) curl_exec($ch) 我得到这个是因为curl_错误无法解析主机“www.bata.com.sg” 请告知。这可能是防火墙问题。有时,托管公司可

我有这个链接

,该网站实际存在

这在检查页面是否存在的curl代码中起作用

它在我的本地主机代码中工作,但在我的live网站中不断失败

我已经使用其他域进行了测试,例如,它一直在我的本地主机和我的live网站上工作

我逐字复制了这个密码

我不明白为什么这个特定的url会失败

我的网站由site5托管

我注意到这一行的值一直是false(布尔值)

curl_exec($ch)

我得到这个是因为curl_错误无法解析主机“www.bata.com.sg”


请告知。

这可能是防火墙问题。有时,托管公司可能会限制Web服务器可以查询的内容

您还可以确保php_info()中存在curl。我想你没有提到任何错误

你也可以尝试一下

file_get_contents('http://www.yahoo.com.sg');

这可能是防火墙问题。有时,托管公司可能会限制Web服务器可以查询的内容

您还可以确保php_info()中存在curl。我想你没有提到任何错误

你也可以尝试一下

file_get_contents('http://www.yahoo.com.sg');

您需要与site5的客户支持人员联系,了解他们的服务器无法解析www.bata.com.sg的原因

在您从他们那里得到答案之前,请尝试以下代码

要点

  • 它连接到IP地址www.bata.com.sg,解析为-194.228.50.32
  • 然后发送主机:www.bata.com.sg header
  • 本质上,它的工作方式与Curl相同,如果它能够解析地址的话

    <?php
    
    // this is the IP address that www.bata.com.sg resolves to
    $server = '194.228.50.32';
    $host   = 'www.bata.com.sg';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $server);
    
    /* set the user agent - might help, doesn't hurt */
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    
    
    /* try to follow redirects */
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    
    /* timeout after the specified number of seconds. assuming that this script runs
    on a server, 20 seconds should be plenty of time to verify a valid URL.  */
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    
    
    $headers = array();
    $headers[] = "Host: $host";
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    
    /* don't download the page, just the header (much faster in this case) */
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    var_dump($response);
    

    您需要与site5的客户支持人员联系,了解他们的服务器无法解析www.bata.com.sg的原因

    在您从他们那里得到答案之前,请尝试以下代码

    要点

  • 它连接到IP地址www.bata.com.sg,解析为-194.228.50.32
  • 然后发送主机:www.bata.com.sg header
  • 本质上,它的工作方式与Curl相同,如果它能够解析地址的话

    <?php
    
    // this is the IP address that www.bata.com.sg resolves to
    $server = '194.228.50.32';
    $host   = 'www.bata.com.sg';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $server);
    
    /* set the user agent - might help, doesn't hurt */
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    
    
    /* try to follow redirects */
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    
    /* timeout after the specified number of seconds. assuming that this script runs
    on a server, 20 seconds should be plenty of time to verify a valid URL.  */
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    
    
    $headers = array();
    $headers[] = "Host: $host";
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    
    /* don't download the page, just the header (much faster in this case) */
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    var_dump($response);
    

    我已经找到了原因

    使用此网站时,我被告知bata.com.sg的名称服务器存在问题


    无论如何,上面的答案也很有用。我从他们那里学到了一些东西。

    我已经找到了原因

    使用此网站时,我被告知bata.com.sg的名称服务器存在问题



    无论如何,上面的答案也很有用。我从他们身上学到了一些东西。

    首先,它的文件内容带有一个S。其次,如果你看一下我从中复制的代码,它试图通过获取标题而不是整个文件来尽可能地提高效率。第三,问题中行为怪异的URL不是www.yahoo.com.sg,而是www.bata.com.sg。第四,当我尝试在bata.com.sg上获取文件内容时,我在直播网站上再次出错,但在本地主机上没有。谢谢你的努力。我很感激。是的,curl是存在的,否则无论输入多少它都不起作用。对不起,我编辑了我的文章。我建议使用file_get_contents,因为它会发出错误消息,同时查看curl错误报告将有助于准确发现发生了什么事情。您必须检查Web服务器的dns设置,首先检查其所有file_get_contents,并使用s。其次,如果你看一下我从中复制的代码,它试图通过获取标题而不是整个文件来尽可能提高效率。第三,问题中行为怪异的URL不是www.yahoo.com.sg,而是www.bata.com.sg。第四,当我尝试在bata.com.sg上获取文件内容时,我在直播网站上再次出错,但在本地主机上没有。谢谢你的努力。我很感激。是的,curl是存在的,否则无论输入多少它都不起作用。对不起,我编辑了我的文章。我建议使用file_get_contents,因为它会发出错误消息,同时查看curl错误报告将有助于准确地发现发生了什么事情您必须检查Web服务器的dns设置curl_error($ch)的返回值在curl_exec之后是多少,返回false?我得到一个无法解析主机“www.bata.com.sg”在curl_exec之后curl_error($ch)的返回值是多少,返回false?我得到一个无法解析主机“www.bata.com.sg”您的代码工作正常,这意味着无法解析url,这就是问题所在?但我不确定您提供的服务器IP是否是www.bata.com.sg正确解决的IP?是的,这是DNS服务器问题,由于您使用的是Site5的服务,您自己可能无能为力。是的,它是www.bata.com.sg的IP,您可以通过执行以下操作从命令行自行解决:nslookup www.bata.com.sg或使用任何基于web的nslookup服务。谢谢。真正的原因是bata.com.sg的名称服务器给出了一个指示。您的代码工作正常,这意味着无法解决问题所在的url?但我不确定您提供的服务器IP是否是www.bata.com.sg正确解决的IP?是的,这是DNS服务器问题,由于您使用的是Site5的服务,您自己可能无能为力。是的,它是www.bata.com.sg的IP,您可以通过执行以下操作从命令行自行解决:nslookup www.bata.com.sg或使用任何基于web的nslookup服务。谢谢。真正的原因是bata.com.sg的名称服务器给出了一个指示。