PHP从字符串中删除元音

时间:2012-09-05 16:41:25

标签: php

对于目录命名算法,需要从字符串中去除元音(和空格)以缩短目录名称。

找到这个帖子Removing vowels from a String (Scheme),但无法弄清楚如何将其转换为可用的功能。忘记那个线程 - 它不是PHP。对不起。

有关PHP解决方案的任何想法吗?

4 个答案:

答案 0 :(得分:11)

我想知道你真的需要一个函数,因为它可以用一个正则表达式来完成。例如:

$some_dirname = 'This is a wonderful dirname';
$pure_dirname = preg_replace('#[aeiou\s]+#i', '', $some_dirname);
print $pure_dirname; // Thsswndrfldrnm

诀窍是对字符串运行正则表达式替换,删除所谓的character range中的所有字符(用[]语法定义)。

我也使用'/ i'修饰符来移除大写元音。

答案 1 :(得分:9)

这应该有效:

$oldStr = "Some string";
$newStr = str_ireplace(array('a','e','i','o','u',' '), '', $oldStr);

答案 2 :(得分:5)

如何使用字符串替换?

$yourString = "FileNameOf Hello";
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", " ");
$yourString = str_replace($vowels, "", $yourString);
echo $yourString; //FlNmfHll

答案 3 :(得分:0)

php中的字符串翻译有助于删除字符串:

strtr - 翻译字符或替换子字符串

$string = "voweltest";
$trans = array("a" => "","e"=>"","i"=>"","o"=>"","u"=>"");
echo strtr($string, $trans);

Output : vwltst