PHP从字符串中删除元音

PHP从字符串中删除元音,php,Php,对于目录命名算法,需要从字符串中去掉元音(和空格),以缩短目录名 找到此线程,但无法确定如何将其转换为可用函数。忘记那个线程吧,它不是PHP。对不起 那么,您对PHP解决方案有什么想法吗?我想知道,如果只需一个正则表达式,您是否真的需要一个函数呢。例如: $some_dirname = 'This is a wonderful dirname'; $pure_dirname = preg_replace('#[aeiou\s]+#i', '', $some_dirname); print $pu

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

找到此线程,但无法确定如何将其转换为可用函数。忘记那个线程吧,它不是PHP。对不起


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

我想知道,如果只需一个正则表达式,您是否真的需要一个函数呢。例如:

$some_dirname = 'This is a wonderful dirname';
$pure_dirname = preg_replace('#[aeiou\s]+#i', '', $some_dirname);
print $pure_dirname; // Thsswndrfldrnm
诀窍是在字符串上运行regex replace,删除所谓的
字符范围
(用[]语法定义)中的所有字符


我还使用了'/I'修饰语来删除大写元音。

使用字符串替换怎么样

$yourString = "FileNameOf Hello";
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", " ");
$yourString = str_replace($vowels, "", $yourString);
echo $yourString; //FlNmfHll
这应该起作用:

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

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

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

$string=“元音测试”
$trans=array(“a”=>,“e”=>,“i”=>,“o”=>,“u”=>)
echo strtr($string,$trans)


Output:vwltst

因为这个问题用不同的语言发布代码……你在开玩笑吗?这甚至不是同一种语言。对,我刚刚意识到。我知道我是PHP的新手,但这完全超出了我的理解范围。然而,当我发布这个问题时,这是一个建议的“可能重复”,所以我假设…我会使用白名单而不是黑名单。您不希望在允许的目录名中使用
/
之类的字符。
多种搜索方法替换在您得到答案之前,我甚至没有修改完问题。一定会有徽章的。答案被接受。(显然,我必须等7分钟,橙色弹出框如是说)。@gibberish很高兴能提供帮助。你可以使用str_ireplace()将$元音长度减半:)啊!比公认的答案还要优雅。非常感谢。向上投票。有没有什么方法可以避免匹配的第一个字符?@Achshar在第三行:
$newStr=(stristr('aeiou',$oldStr[0])==FALSE)$newStr:$oldStr[0]。$newStr