簡體   English   中英

PHP通過對&符號進行編碼來破壞URL

[英]PHP breaking URL by encoding ampersand

我正在調試一個旨在將這些代碼顯示在圖像中的站點:

<a href="<?=$auction_link;?>"><img src="<? echo ((!empty($main_image)) ? 'thumbnail.php?pic=' . $main_image . '&w=' . $layout['hpfeat_width'] . '&sq=Y' : 'themes/' . $setts['default_theme'] . '/img/system/noimg.gif');?>" border="0" alt="<?=$item_details[$counter]['name'];?>"></a>

沒有顯示圖像,顯然是因為href值已轉換為:

thumbnail.php?pic=uplimg/img_A_100430_b93204949c62ffba35eb62f1b94b93c4.jpg&amp;w=0&amp;sq=Y"

什么時候應該是:

thumbnail.php?pic=uplimg/img_A_100430_b93204949c62ffba35eb62f1b94b93c4.jpg&w=250&sq=Y

請注意&amp; &應該在兩個地方。 反正有停止編碼嗎?

謝謝-喬

嘗試使用&amp; 在您的PHP源代碼中。 PHP不會順便對&符號進行編碼。

/*...*/ $main_image . '&amp;w=' . $layout['hpfeat_width'] . '&amp;sq=Y' /*...*/

您正在為HTML而不是URL編碼。

如果希望“&”號是數據而不是控制項-也就是說,如果希望“&”號作為參數名稱或值的一部分而不是作為分隔符betweek鍵-值對傳遞給服務器,則希望使用%xx編碼,其中xx是您要編碼的字符的十六進制值。

如果您根本不想對其進行編碼,則需要查找正在執行編碼的代碼snd刪除它(魔術不會發生任何事情)。

好的,看來還有其他問題。 變量$layout['hpfeat_width']似乎無法正確轉換。 當我用一個硬值替換它時,它就起作用了。 感謝大家花一點時間看看這個!

最好-喬

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM