我正在尝试从mysql结果创建一个链接:
while($row = $result->fetch_assoc()){
echo "<a class=post_link href=http://localhost:8888/search.php?loc=".$row['loc']."<=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ;
}
问题是,当'loc'行包含多个单词时。是否有可能检测到它有两个或多个单词并在它们之间插入'%',或者我需要使用不同的技术?
答案 0 :(得分:3)
使用PHP函数urlencode()
。当编码要在URL的查询部分中使用的字符串时,此功能很方便。更多信息:http://php.net/manual/en/function.urlencode.php
while($row = $result->fetch_assoc()){
echo "<a class=post_link href=http://localhost:8888/search.php?loc=".urlencode($row['loc'])."<=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ;
}
答案 1 :(得分:0)
或者你可以使用ereg_replace,因为urlencode(据说,没有个人经验)有时会有点奇怪:
while($row = $result->fetch_assoc()){
$loc = ereg_replace("[ \t\n\r]+", "%", $row['loc']);
echo "<a class=post_link href=http://localhost:8888/search.php?loc=".$loc."<=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ;
}
这也取代了新的行和制表符。