问题描述
|
有人可以告诉我如何执行此操作:
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!
如果可能的话,请在单词中用“。”分隔,例如在美国
谢谢
解决方法
尝试这个:
<?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);
请记住,此功能不处理缩写(不会将usa更改为USA)。国家代码可以用几种不同的方式处理。一种是制作国家/地区代码的哈希图并替换它们,或者也使用正则表达式。
, 保持较低的网址:
$strarray = explode(\' \',$str);
for($i=0;$i<count($strarray))
{
if(substr($strarray[$i],4)!=\'http\')
{
$strarray[$i] = ucfirst($strarray[$i])
}
}
$new_str = implode(\'\',$strarray);