-1

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

找到了这个线程Removing vowels from a String (Scheme)但无法弄清楚如何将它变成一个可用的函数。忘记那个线程 - 它不是 PHP。对不起大家。

那么,对 PHP 解决方案有什么想法吗?

4

4 回答 4

11

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

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

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

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

于 2012-09-05T16:43:11.797 回答
9

这应该有效:

$oldStr = "Some string";
$newStr = str_ireplace(array('a','e','i','o','u',' '), '', $oldStr);
于 2012-09-05T16:45:43.703 回答
5

使用字符串替换怎么样?

$yourString = "FileNameOf Hello";
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", " ");
$yourString = str_replace($vowels, "", $yourString);
echo $yourString; //FlNmfHll
于 2012-09-05T16:44:36.700 回答
0

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

strtr — Translate characters or replace substrings

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

Output : vwltst

于 2013-06-26T05:54:00.200 回答