我託管了一個我在亞馬遜網絡服務上工作的網站,由於某些原因,我在本地在本地主機上運行它時出現了一些問題。這個URL需要urlencoding在哪裏?
的那些東西是
if (array_key_exists("error", $json))
功能和
的file_get_contents
功能。
伊夫註釋掉陣列鍵存在一部分,解決了這個問題,至少登錄的那一部分,直到我到視圖中的文檔頁面,苗條的應用程序顯示錯誤
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
和問題針對在於viewdocspage.php文件,特別是這樣的代碼:
<?php
$raw = file_get_contents("http://cosoft.us-east-1.elasticbeanstalk.com/cosoft/mywiki/api.php?action=query&list=allpages&format=json");
$pages_response = json_decode($raw, true);
$pages_array = $pages_response["query"]["allpages"];
$page_titles = [];
我看了一下,許多線程讀取了該問題在於在該網址中包含特殊字符,如空格的file_get_contents(其我沒有)等需求進行編碼,使用進行urlencode(或rawurlencode ..?)
現在我用盡編碼整個URL這樣的:
$raw = file_get_contents(urlencode("http://cosoft.us-east-1.elasticbeanstalk.com/cosoft/mywiki/api.php?action=query&list=allpages&format=json"));
但導致這個錯誤: slim error
Message: file_get_contents(http%3A%2F%2Fcosoft.us-east-1.elasticbeanstalk.com%2Fcosoft%2Fmywiki%2Fapi.php%3Faction%3Dquery%26list%3Dallpages%26format%3Djson): failed to open stream: No such file or directory
我想這可能會發生,因爲我讀了並不是所有的URL都應該被這個編碼包裝,而是繼承人Im卡住了:我使用哪個url部分編碼在?唯一的特殊字符,我不斷地來關於這個錯誤accross是空格,但我沒有任何空格,所以它的東西,我不知道它是什麼...
幫助表示讚賞,謝謝!
很好。即使有儘可能詳細的組織和獨特的問題,我得到一個downvote沒有解釋。 smh – masterofcatastrophe
哇... 2更多downvotes。有人可以解釋嗎? – masterofcatastrophe
我猜懷疑可能是因爲你聽到了馬蹄聲,而你正在尋找一匹斑馬,同時忽略了盯着你的那匹馬:'http://cosoft.us-east-1.elasticbeanstalk.com/cosoft/ mywiki/api.php?action = query&list = allpages&format = json'確實返回404 Not Found。你有一個無效的URL,或者你的IP受限制,或者你沒有發送證書......但這不是一個urlencoding問題。 URL中沒有任何內容需要編碼(通常在'?the_keys = and_values_in&ur = query_string'上使用,但不在?=&分隔它們)。 –