从MySQL结果构建HREF

时间:2013-09-02 18:07:49

标签: php mysql hyperlink

我正在尝试从mysql结果创建一个链接:

while($row = $result->fetch_assoc()){
    echo "<a class=post_link href=http://localhost:8888/search.php?loc=".$row['loc']."&lt=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ;
}

问题是,当'loc'行包含多个单词时。是否有可能检测到它有两个或多个单词并在它们之间插入'%',或者我需要使用不同的技术?

2 个答案:

答案 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'])."&lt=".$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."&lt=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ;
}

这也取代了新的行和制表符。