有人可以告诉我如何做到这一点:
Input:
hello http://DOMAIN.com/asdakdjk.php?asd=231&adsj=23 u.s. nicely done!
Result:
Hello http://DOMAIN.com/asdakdjk.php?asd=231&adsj=23 U.S. Nicely Done!
包含以'。'分隔的单词如果可能,例如在美国
由于
答案 0 :(得分:0)
试试这个:
<?php
function capitalizeNonURLs($input)
{
preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $input, $matches);
$url = $matches[1];
$temp = ucwords($input);
$output = str_ireplace($url, $url, $temp);
return $output;
}
$str = "hello http://domain.com/asdakdjk.php?asd=231&adsj=23 u.s. nicely done!";
echo capitalizeNonURLs($str);
请记住,此功能不处理缩写(它不会将美国更改为美国)。国家代码可以通过几种不同的方式处理。一种是制作国家代码的哈希映射并替换它们或使用正则表达式。
答案 1 :(得分:-1)
保持网址更低:
$strarray = explode(' ',$str);
for($i=0;$i<count($strarray))
{
if(substr($strarray[$i],0,4)!='http')
{
$strarray[$i] = ucfirst($strarray[$i])
}
}
$new_str = implode('',$strarray);