如何用破折号替换空格

时间:2011-08-26 23:34:01

标签: php

我的想法是删除特殊字符和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

〜谢谢

2 个答案:

答案 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);

在你的最后一行之后用超量替换空格。