2011-06-10 61 views
4
$url = "http://example.com/............." 

$ url大約有​​超過4095個字符。 我需要在PHP訪問此網址,但如果我用filefile_get_contents,它返回一個錯誤在php中超過4095個字符的長URLs

我怎樣才能打開或在PHP訪問此網址是什麼?

+7

爲什麼嗶聲你會有一個很長的URL? – 2011-06-10 09:24:22

+3

請在出現錯誤時引用* exact *消息。 – 2011-06-10 09:27:38

+0

我沒有一個非常長的URL來嘗試mysel,但是一個Curl請求可以做到這一點嗎? – azzy81 2011-06-10 09:30:11

回答

1

它取決於您嘗試訪問的服務器類型。

例如:

阿帕奇:由LimitRequest *限制URL長度,默認情況下它具有8千字節爲URL字符串。

Microsoft Internet Information Server:默認情況下它有16 KB。但它可以改變。

Perl的HTTP ::守護程序:8000個字符爲URL長度和16千字節的HTTP標頭。值可以在Daemon.pm中更改。

+0

這也取決於客戶端... – 2011-06-10 09:30:42

+0

但是沒有客戶端,它是PHP腳本oO還是在PHP conf中有限制嗎? – 2011-06-10 09:38:22

+0

嗨,謝謝。 我嘗試代碼都在Firefox和IE瀏覽器,都返回相同的錯誤「'HTTP/1.0 414錯誤#10068 - HTTP請求行超過4096字符限制」 – haitao 2011-06-10 10:24:28

4

你的問題不是PHP,它是你的需求的瘋狂。 :)另外;

What is the maximum length of a URL in different browsers?

當然,你想POST,而不是瘋狂的GET。這聽起來更像是系統設計的一個基本問題。

+0

嗨,謝謝,但我不能發表這一點。這是一個通過公司的網址api生成pdf文件的鏈接。他們只是提供GET方法。 – haitao 2011-06-10 10:08:01

+0

然後我認爲你需要給他們寫一封嚴厲的郵件,並要求他們不要製造這樣的垃圾。如果必須的話,你可以用不同的方式表達。 :) – AlexanderJohannesen 2011-06-10 11:52:57

0
+0

嗨,謝謝。但我不能使用POST而不是GET。 感謝您的參考。 Stream上下文可以選擇最大字符長度嗎?我收到了錯誤消息 「'HTTP/1.0 414錯誤#10068 - HTTP請求行超過了4096個字符的限制 Content-Length:71 Date:Fri,10 Jun 2011 10:03 :07格林尼治標準時間 「 – haitao 2011-06-10 10:16:56

+1

如果您從API服務器/服務收到此信息,則表示失敗不在您身邊,而是在您的身上。即他們不接受這樣長的網址,不管用什麼方法,結果都是一樣的。 – mkilmanas 2011-06-10 10:55:10

1

你得到了錯誤。

如果API依賴GET請求,其目的是要使用你使用它的方式,你的問題是所用的API設計中的錯誤和無關用PHP。如果您無法更改提供API訪問的API或服務,則無法解決此問題

相關問題