我有一个查询拉一堆城市名称。我需要将它们中的每一个链接起来......链接看起来像这样: www.sitename.com/city-new-york
问题是,如果我将名称设置为名称的链接......某些城市如"纽约"它们中有空格......然后URL无法正常工作。 我怎样才能使名称中的空格被替换为" - "所以它会读取" city-new-york",现在我有这个代码,但它将它链接为 " city-new york"
<?php foreach ($cities as $city):?>
<li>
<a href="city-<?php echo $city['name']; ?>">
<?php echo $city['name']; ?>
</li>
<?php endforeach;?>
另外,我只需添加......我没有选择权,我必须这样做,因为它是现有脚本的一部分......我可以&#39 ; t只为db中的URL添加一个单独的列。
答案 0 :(得分:1)
查看urlencode功能。简而言之,您需要编码许多字符,而不仅仅是空格。
返回一个字符串,其中除-_之外的所有非字母数字字符。 已被替换为百分号(%),后跟两个十六进制数字 和空格编码为加号(+)。它的编码方式与之相同 来自WWW表单的发布数据被编码,其方式与中的相同 application / x-www-form-urlencoded媒体类型
请注意,您的服务器会自动解码参数。以上对HTTP请求进行了编码。
答案 1 :(得分:0)
str_replace
函数允许您替换字符串中的字符,strtolower
将使整个字符小写:
<?php foreach ($cities as $city):?>
<li>
<a href="city-<?php echo strtolower( str_replace(' ', '-', $city['name']) ); ?>">
<?php echo $city['name']; ?>
</li>
<?php endforeach;?>