从超链接内的查询中删除%20

时间:2013-03-17 20:54:18

标签: php sql hyperlink str-replace

我正在使用:

header('Location: palette/'.urlencode(str_replace(' ','_',$title)));

在提交表单时重定向用户。上面的代码用%20替换了_(空格)作为输入的标题。

因此,用户不会输入"Great place"而是尝试将其发送到名为palette/Great%20place的网页,而是将其发送到palette/Great_place

现在我的问题是,是否可以将此技术应用于超链接?

我有以下循环:

<?php   
while($row = mysql_fetch_array($result))
{
    echo "<a href='palette/$row[title]'><div id='main_col_container'>";
    echo "<div class='title'> $row[title]</div>";
    echo "<div class='main_color' style='background: $row[color1];'></div>";
    echo "<div class='main_color' style='background: $row[color2];'></div>";
    echo "<div class='main_color' style='background: $row[color3];'></div>";
    echo "<div class='main_color' style='background: $row[color4];'></div>";
    echo "<div class='main_color' style='background: $row[color5];'></div>";
    echo "</div></a>";
}
?>

问题当然是$row[title]表示原始数据(需要显示"Great_place",而不是"Great place"

只是为了澄清: str_replace是否有可能为了我之后的目的而建立一个超链接,如果是的话,我该怎么办呢?


编辑:这就是我现在所做的工作

<?php   
while($row = mysql_fetch_array($result))
{

$titleurl   = str_replace(' ','_',$row['title']);

echo "<a href='palette/$titleurl'><div id='main_col_container'>";
echo "<div class='title'> $row[title]</div>";
echo "<div class='main_color' style='background: $row[color1];'></div>";
echo "<div class='main_color' style='background: $row[color2];'></div>";
echo "<div class='main_color' style='background: $row[color3];'></div>";
echo "<div class='main_color' style='background: $row[color4];'></div>";
echo "<div class='main_color' style='background: $row[color5];'></div>";
echo "</div></a>";
}
?>

这是结果的最佳技巧吗?或者无论出于什么原因它被认为是不好的做法?

1 个答案:

答案 0 :(得分:1)

当然,只需将str_replace {{1}}放入字符串中,而不是插入变量。