2015-07-10 44 views
1

我傳遞一個URL到一個PHP文件,在其中改變一些顏色等顏色之一是#ccc,並通過了&background=#ccc這打破了我的PHP文件(它停止我的$_GET參數在那個hashtag,之後的所有內容都不會傳遞)編碼JavaScript網址以傳遞#(#標籤)

我試過編碼我的網址爲encodeURIComponent(url),它也編碼我的?和&我使用我的$ _GET字符串。當使用encodeURI()時,標籤根本不編碼。

任何想法如何將我的所有變量傳遞給我的PHP文件,以便我可以在那裏閱讀它們?

請注意這是一個樣式表href。我不能/不會使用jQuery的$.get()方法只是解析標籤,在我追加它是這樣:

<link href="http://localhost:8888/test.php/layout.scss?primarycolor=hotpink&secondarycolor=white&background=#ccc&textcolor=black&linkcolor=black&font=Futura&" type="text/css" rel="stylesheet" id="custom-style"> 
+0

你不能只傳遞背景= ccc和代碼後面添加hashtag? – Buzka91

+0

是的,使用'ccc'並提供之後的hashtag。人們總是用太複雜的解決方案。 –

+1

除了人們可以通過「黑色」的事實。那麼會轉換爲「#black」。將很多不需要hashtag的東西拖垮會複雜得多;) – CaptainCarl

回答

4

encodeURIComponent是正確的,但你只需要使用它的#ccc位。如果您正在手動完成(如在<link>標記中硬編碼),則使用%23而不是#

+0

這就是我現在修復它的方法;不過,我希望能有更好的處理方式。但看到迄今爲止的答案,我認爲不存在。 – CaptainCarl

0

您可以實現專有的編碼系統。例如,說「#」等於「! - !」例如。

然後在您的服務器端PHP代碼中,您可以運行str_replace("!-!", "#", $getVar)語句以正確使用顏色代碼。但不理想。

同時,嘗試:htmlentitieshtml_entity_decodehttp://php.net/htmlentities

1

哈希標籤不會傳遞到服務器,所以這就是爲什麼他們打破你的腳本。至於編碼,如果encodeURIComponent()工作,你可能必須在URL中編碼每個值。或者,您可以使用簡單的字符串替換替換%23中的URL中的#符號。