php querystring用空格传递变量

时间:2014-09-11 10:12:31

标签: php

我正在将一个变量从一个页面传递到另一个页面,它对我来说很好,但是对于有SPACE的变量它不起作用...

以下是代码段:

<?php echo "<a href=test2.php?key=".$row->ean."&key1=TW&key2=".$row->prod_compttr.">".$num2."</a>"; ?>

例如,如果key2包含&#34; Foto de Vakman&#34;然后只有Foto传递到其他页面。

如何排除这个问题?

4 个答案:

答案 0 :(得分:1)

使用urlencode

<?php echo "<a href=test2.php?key=".urlencode($row->ean)."&key1=TW&key2=".urlencode($row->prod_compttr).">".urlencode($num2)."</a>"; ?>

答案 1 :(得分:0)

您需要为URL编码字符串,如下所示:

<?php 
  echo "<a href=test2.php?key=".urlencode($row->ean).
       "&key1=TW&key2=".urlencode($row->prod_compttr).
       ">".urlencode($num2)."</a>"; 
?>

答案 2 :(得分:0)

网址永远不能有空格....所以为了避免这种情况,我建议您使用某个字符替换" "然后在GET上进行反转,如果您以后需要维护和使用空间页

如果您不了解 urlencode

,那么简单,天真,快捷的方式

假设您的网址中的key" "

<a href=test2.php?key=".str_replace(' ', '~~~~', $row->ean)."&key1=TW&key2=".$row->prod_compttr.">".$num2."</a>"; ?>
      /* Replace `" "` with `~~~~` here ^^ */

然后将值返回到您必须获取的页面

$url_key = str_replace("~~~~"," ",  $_GET['key']);

答案 3 :(得分:0)

空格很好,通常用+编码。

为了更安全,请在您的值上使用urlencode(),如果手动将它们添加到您的参数中。

Ex. $key1 = 'Foto de Vakman';
    echo urlencode($key1); // Foto+de+Vakman