0

我在 html 中有一个代码,它允许我获取中间有空格的字符串,例如“玩游戏”。

在 html 中:

<li><a href="allProduct.php?category=Play Game">Play Game</a></li>

但是我在 echo() 中不能这样做,我只设法得到了“play”这个词:

    echo("<table width=80%>
    <tr>
    <ul>
        <li><a href="allProduct.php?category=Play Game">Play Game</a</li>
    </ul>
    </tr>");
4

6 回答 6

1

请注意,尽管大多数浏览器只会eat在 url 中使用空格,但它们在标准中是不允许的。你可以参考这个文档,上面写着:

URL 不能包含空格。URL 编码通常用 + 号替换空格。

在 PHP 中,用于urlencode()将空格编码为+

$encoded = urlencode('allProduct.php?category=Play Game');
// will give you : allProduct.php?category=Play+Game

此外,您不能使用双引号将包含双引号的字符串括起来。我会用单引号括起来。

完整示例:

echo('<table width=80%>
<tr>
<ul>
    <li><a href="' . urlencode('allProduct.php?category=Play Game') .'">Play Game</a</li>
</ul>
</tr>');
于 2013-04-16T12:36:52.673 回答
1

您将 echo 字符串括在双引号中,同时在字符串本身内使用双引号。您可以通过将 echo 字符串括在单引号中或使用反斜杠转义字符串中的双引号来解决此问题。(像这样:\")

编辑:您可能还想从“播放”和“游戏”中删除空间。使用 PHP 的urlencode()函数来实现这一点。正如另一张海报所建议的那样,您也可以使用 a&nbsp;代替。

于 2013-04-16T12:37:39.000 回答
0

使用正确的字符串转义:

echo("<table width=80%>
<tr>
<ul>
    <li><a href=\"allProduct.php?category=Play%20Game\">Play Game</a</li>
</ul>
</tr>");

您还必须使用 URL 格式对空格进行编码%20

于 2013-04-16T12:37:04.533 回答
0
echo('<table width=80%>
<tr>
<ul>
    <li><a href="allProduct.php?category=Play%20Game">Play Game</a</li>
</ul>
</tr>');

将双引号更改为单引号,它将为您工作

于 2013-04-16T12:37:18.017 回答
0

使用单个 ' 表示回声。比你可以对 HTML 使用普通的 "

echo '<tag class="xyz">...</tag>';

顺便说一句:您不应该在链接中使用空格。

你可以——也应该使用——合适的方法。在你的情况下

urlencode('Music Albums')

相应地对空间进行编码。

于 2013-04-16T12:37:36.533 回答
0

检查这个

echo("<table width=80%>
        <tr>
        <ul>
        <li><a href='allProduct.php?category=Play Game'>Play Game</a</li>
        </ul>
        </tr>");
于 2013-04-16T12:46:38.760 回答