删除特殊字符并在单词php mysql之间添加短划线

时间:2011-03-30 00:08:25

标签: php mysql

我试图剥离所有特殊字符并在所有单词之间添加一个短划线。

示例:

示例文字: 如何制作东西,其他东西和其他东西。

示例字符串:

$string = "How to make something, something else, and other stuff.";

它的外观示例: 如何对化妆的东西,东西,别的,和其他-东西

我需要一个能去除所有特殊字符的函数,但也要在每个单词之间添加短划线“但也不要在最后一个单词后添加短划线”。任何人都有我应该怎么做的想法?我认为这很简单。可能是一个带有正则表达式的preg_replace,可以解决特殊字符问题,但添加破折号是我感到困惑的地方,不知道该怎么做。

3 个答案:

答案 0 :(得分:5)

假设字符串在utf-8中:

$string = 'Höw to máke sòmething, something else, and other stuff';
$string = preg_replace('/[^a-z0-9]+/i','-',
   iconv('UTF-8','ASCII//TRANSLIT',$string));
$string = trim($string,'-');

答案 1 :(得分:2)

删除非字母字符后,您可以在空格中explode(),然后使用短划线implode()

答案 2 :(得分:1)

我会在空格处爆炸字符串然后用这样的短划线破坏它:

$string = trim($string); // removes white space from ends
$string = preg_replace("/[^A-Za-z0-9]/","",$string); // removes special chars 
$string = explode(' ', $string); // separates the words where there are spaces
$string = implode('-', $string); // puts the words back into a sentence separated by dashes
echo $string;

这显然可以浓缩 - 但为了简单起见,这些是所需的步骤。