iT邦幫忙

0

`fopen()`和`file_get_contents()`—failed to open stream: Connection timed out in

php

如題
我使用fopen()file_get_contents()開啟URL
皆出現錯誤訊息:failed to open stream: Connection timed out in
PS:原本可以成功開啟URL,但這幾天突然發現無作用了(但直接把URL貼到網址列執行是可以的)

或是
有沒有其他能開啟URL的方式?

謝謝

1 個回答

0
浩瀚星空
iT邦超人 1 級 ‧ 2019-11-11 23:07:32

連結外網還是本地網???

外網的話,可能被人家阻擋了吧。
所以的阻擋是指外連阻擋。
可以用curl來搞定。

看更多先前的回應...收起先前的回應...
小斑 iT邦新手 4 級 ‧ 2019-11-12 09:51:49 檢舉

應該是外網(是公司申請的Domain Name)

請問我參考了以下範例
[php]curl_exec 執行一個cURL會話
可以成功
但把"http://www.example.com/"改成$url
頁面回覆整頁空白
會是什麼問題?

$url貼到本機的瀏覽器可以執行
在本機也可以使用fopen()file_get_contents()curl那些執行$url
但放到伺服器卻失敗了(PS:原本可以成功,是在這幾天突然無作用了)

我推測你的$url可能有中文或是特殊字元的東西了。導致用變數傳送不正確的連結。
試試先將你的$url轉換html碼再用程式送看看吧

小斑 iT邦新手 4 級 ‧ 2019-11-12 10:35:23 檢舉

您好,有轉換過了@@,使用urlencode()

方便私下給你的$url值嘛??

小斑 iT邦新手 4 級 ‧ 2019-11-12 15:13:36 檢舉

謝謝
實在很掙扎
但考慮到內容與公司內部資訊有關
可能還是不太方便
我再找時間和同事討論看看好了
真的非常感謝您
/images/emoticon/emoticon41.gif

你可以域名不用給。跟英文字有關的可以隨意改。
我主要是要判斷你傳的東西是什麼特性。

小斑 iT邦新手 4 級 ‧ 2019-11-12 17:42:44 檢舉

已傳送囉
謝謝您

收到了,已回覆給你。看你只針對其中一個參數做url化。其它有可能會有中文字的並未做url化。很有可能是這樣的問題。
再加上你傳送的get內容也有機會超過對方伺服器能接收的容量而被拒絕。
再放瀏覽器測試時。最好是先做全url化。

畢竟瀏覽器你貼上中文字傳送,它是會幫你做url化傳送處理。
一般都是可以成功的。

不過如果你傳送的地方是屬於自已可以修改的程式。我會比較建議你這樣的內容最好還是採用post的方式會比較安全。畢竟get有容量限制會比較麻煩

我要發表回答

立即登入回答