我的想法是删除特殊字符和HTML代码,并将空格替换为破折号 让我们一步一步地做到这一点
$text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>";
现在我希望输出成为Hello-world-its-me-and-love-you
我已经厌倦了这段代码来删除特殊字符和HTML代码
$array = array();
$array[0] = "/<.+?>/";
$array[1] = "/[^a-zA-Z0-9 ]/";
$textout= preg_replace($array,"",$text);
现在输出将是这样的Hello world its me and love you
所以我有什么方法可以修改这段代码,以便文本输出变得精确,因为我需要Hello-world-its-me-and-love-you
〜谢谢
答案 0 :(得分:2)
最好使用strip_tags
为你删除html标签,然后使用正则表达式删除所有非字母数字(或非空格)字符。然后,您可以使用str_replace
简单地将空格转换为连字符。注意我还添加了一行来将多个空格折叠到一个空格,因为这是您在示例中所做的。否则,您将获得world--its-me
而不是world-its-me
。
<?php
$text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>";
$text = strip_tags($text);
$text = preg_replace('/[^a-zA-Z0-9 ]/', '', $text);
//this is if you want to collapse multiple spaces to one
$text = str_replace (' ', ' ', $text);
$text = str_replace (' ', '-', $text);
?>
答案 1 :(得分:1)
你可以添加
$textout = str_replace(' ', '-', $textout);
在你的最后一行之后用超量替换空格。