Heim  >  Fragen und Antworten  >  Hauptteil

PHP-URL-Kodierung/Dekodierung

<p>Ich habe die in dieser Frage akzeptierte Lösung verwendet, um die ID zu verschlüsseln, zum Beispiel in <strong>/index.php?id=3</strong>. Das Problem ist, dass ich den verschlüsselten Wert nicht als URL wie <strong>/index.php?id=dsf13f3343f23/23=</strong> senden kann. Da die URL manchmal seltsame Zeichen enthält, achten Sie beispielsweise auf das <code>=</code>-Symbol</p>
P粉512363233P粉512363233456 Tage vor570

Antworte allen(2)Ich werde antworten

  • P粉214176639

    P粉2141766392023-08-15 10:44:53

    使用PHP的urlencode()函数将值编码后再放入URL中。

    该函数将“奇怪”的字符,如=,转换为安全放入URL中的格式。你可以像这样使用它:

    Header('Location: /index.php?id=' . urlencode($id))

    Antwort
    0
  • P粉346326040

    P粉3463260402023-08-15 09:23:14

    在URL中传递的值中的奇怪字符应该使用urlencode()进行转义。


    例如,以下代码片段:

    echo urlencode('dsf13f3343f23/23=');

    将给出:

    dsf13f3343f23%2F23%3D

    作为URL参数,这样是有效的。


    如果你想要构建一个包含多个参数的查询字符串,请查看http_build_query()函数。

    例如:

    echo http_build_query(array(
        'id' => 'dsf13f3343f23/23=',
        'a' => 'plop',
        'b' => '$^@test', 
    ));

    将给出:

    id=dsf13f3343f23%2F23%3D&a=plop&b=%24%5E%40test

    这个函数会自动处理转义和参数的拼接;-)

    Antwort
    0
  • StornierenAntwort