我正在使用:
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>";
}
?>
这是结果的最佳技巧吗?或者无论出于什么原因它被认为是不好的做法?
答案 0 :(得分:1)
当然,只需将str_replace
{{1}}放入字符串中,而不是插入变量。