Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用破折号替换%20_Php_Html - Fatal编程技术网

Php 用破折号替换%20

Php 用破折号替换%20,php,html,Php,Html,当我回显下面的变量时,空格表示为%20 $row["title"] 因此,例如,如果$row[“title”]等于“葡萄牙镇压朝鲜”,那么它会呼应为葡萄牙%20镇压%20朝鲜%20朝鲜 在我的源代码中,如何用破折号替换每个%20 提前感谢, John您的数据可能是url编码的-使用rawurldecode($row['title'])将其取回。两者都可以 $string = 'Portugal%20Crushes%20North%20Korea'; echo str_replace('%20

当我回显下面的变量时,空格表示为
%20

$row["title"]
因此,例如,如果
$row[“title”]
等于“葡萄牙镇压朝鲜”,那么它会呼应为
葡萄牙%20镇压%20朝鲜%20朝鲜

在我的源代码中,如何用破折号替换每个
%20

提前感谢,


John

您的数据可能是url编码的-使用
rawurldecode($row['title'])
将其取回。

两者都可以

$string = 'Portugal%20Crushes%20North%20Korea';

echo str_replace('%20', '-', $string);
echo str_replace(' ', '-', rawurldecode($string));
不过,在替换之前对字符串进行Url解码并不是绝对必要的。如果字符串中有其他编码字符,例如:

echo rawurlencode('Portugal Crushes North Korea (7:0)');
// Portugal%20Crushes%20North%20Korea%20%287%3A0%29
应用解码后,空间到破折号的替换将

Portugal-Crushes-North-Korea-(7:0)
请参阅PHP手册

  • -解码URL编码字符串
如何用破折号替换每个%20


看起来您正在做的是在标题进入数据库之前对其进行编码

我不会这样做的。不要为DB编码数据,而是在将结果循环到页面时对其进行编码,或者更好的是,添加一个名为slug的额外列

这意味着这里的标题是
一些干净的标题
,在slug列中,您有
一些干净的标题
,因此您可以使用
$row['slug']

然后在你的链接中使用

<a href="site_root.tld/post/<?=$row['slug']?>"><?=$row['title'];?></a>

始终使用
mysql\u real\u escape\u string
对数据进行转义,并使用一个函数,该函数不仅可以对db条目上的slug进行URL编码,还可以创建一个光滑、优雅、安全格式化的字符串


slug的最佳形式是
a-zA-Z0-9-

好的。。。谢谢添加破折号来代替%20怎么样?实际上,它应该是rawurldecode。请注意空格不是用+编码的。谢谢。。。这看起来很有希望。。。但它不起作用。我将此变量用作超链接的一部分。当我将鼠标悬停在超链接上时,我希望虚线所在的位置存在空格。当我点击超链接时,%20仍然出现在我希望破折号所在的URL中。@John
$row['title']
首先可能不包含空格的
%20
。单击链接时,浏览器会自行更改此设置。如果希望链接有破折号,请在创建链接之前尝试
str_replace('',-',$row['title'])
。这似乎很有希望。。。如何生成slug变量?有关什么是slug的更多信息,请参见或查看php中的示例。感谢RobertPitt。。。我现在正在使用生成slug的代码,并在数据库中添加了slug列。现在,我使用slug作为链接的一部分。很好,通过存储所需版本的字符串1用于用户视觉,1用于url,将使您的生活更加轻松,始终尝试在用户输入原始数据时存储原始数据,以便您始终可以对数据执行不同的操作,通过存储更改后的数据,您会发现执行更多操作变得更加困难,因为您在将其保存到DB:)后已将其存储。还忘了提及,如果您未在URI中传递id号,请确保您的slug列设置为UNIQUE,以便当您从URL接收slug时,可以在不重复的情况下对其进行检查。为什么要将首先是“%20”在那里?
<a href="site_root.tld/post/<?=$row['slug']?>"><?=$row['title'];?></a>