2009-09-24 33 views
1

我有這個鏈接我有一個捲曲,在localhost中工作,但不在現場網站。我想不通爲什麼

http://www.bata.com.sg,該網站確實存在

,在我來檢查,如果該頁面存在捲曲代碼工作。

它在我的本地主機代碼中工作,但它在我的實時網站中保持失敗。

我已經測試過使用其他域名,如http://www.yahoo.com.sg,它一直在我的本地主機和我的直播網站上工作。

我複製此代碼http://w-shadow.com/blog/2007/08/02/how-to-check-if-page-exists-with-curl/一字一字。

我不明白爲什麼它失敗,這個特定的網址。

我的網站是由site5託管的。

我注意到,我不斷收到假(布爾)此行

curl_exec($ CH);

我得到這個爲curl_error無法解析主機 'www.bata.com.sg'

請告知。

+1

在curl_exec之後curl_error($ ch)的返回值是什麼,返回false? – 2009-09-24 06:17:03

+0

我得到一個無法解析主機'www.bata.com.sg' – 2009-09-24 06:30:48

回答

4

你需要跟客戶支持site5的找出原因,他們的服務器無法解析www.bata.com.sg

直到你來自他們的答案,請嘗試下面的代碼。

它連接到IP地址www.bata.com.sg要點

  1. 解析 - 194.228.50.32
  2. 然後將主機:www.bata.com.sg頭

從本質上講,它的工作方式與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); 
+0

你的代碼的工作原理,這意味着它無法解決這個問題的網址?但我不確定您提供的服務器IP是否是www.bata.com.sg正確解析的IP? – 2009-09-24 09:08:01

+0

是的,它是一個DNS服務器問題,而且由於您使用Site5的服務,您可能無法自己做任何事情。 是的,它是www.bata.com.sg的IP,您可以通過執行nslookup www.bata.com.sg或使用任何基於Web的nslookup服務來從命令行自行解決它。 – 2009-09-24 09:47:07

+0

謝謝反。真正的原因是bata.com.sg 的名稱服務器http://www.intodns.com/bata.com.sg提供了一個說明。 – 2009-09-26 10:20:06

-1

這可能是一個防火牆問題。有時託管公司可能會限制Web服務器可以諮詢的內容。

也可以確保curl存在於php_info()中。我想你沒有提到任何錯誤。

也是你給一個嘗試

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

首先它的file_get_contentS與S. 其次,如果你看着我從它複製的代碼試圖儘可能高效通過獲取頭文件而不是整個文件。 第三,有問題的行爲網址不是www.yahoo.com.sg其www.bata.com.sg 第四,當我在bata.com.sg上嘗試file_get_contents時,我在活網站上再次出現錯誤,但是不在我的本地主機上。 – 2009-09-24 06:00:19

+0

感謝您的努力。我讚賞它。並且是捲曲是否存在,否則無論輸入如何都不起作用 – 2009-09-24 06:01:11

+0

對不起,我編輯了我的文章。我建議使用file_get_contents,因爲它會產生一個錯誤信息,同時查看curl錯誤報告將有助於確切發現發生了什麼 – RageZ 2009-09-24 06:14:37

0

我想通了原因。

使用本網站有人告訴我,有一個問題與bata.com.sg

的域名服務器

http://www.intodns.com/bata.com.sg

反正答案上面已經有用。我從他們身上學到了一些東西。

相關問題