PHP语言中字符串上的过滤字词
我有一个字符串,其中每个单词的所有开头都大写。现在我想过滤它,如果它可以检测到单词链接"as,the,of,in等",它将被转换为小写。我有一个代码,可以替换它并将其转换为小写,但只有一个单词,如下所示:
$str = "This Is A Sample String Of Hello World";
$str = preg_replace('/Of/', 'of', $str);
output: This Is A Sample String of Hello World
所以我想要的是过滤上的其他单词,比如字符串上的"is,a"。过滤上的每个单词都要重复使用preg_place,这很奇怪。
谢谢!
解决方案
使用preg_replace_callback():
$str = "This Is A Sample String Of Hello World";
$str = ucfirst(preg_replace_callback(
'/(Of|Is|A)/',
create_function(
'$matches',
'return strtolower($matches[0]);'
),
$str
));
echo $str;
Displays "This is a Sample String of Hello World".
相关文章