2011-05-30 55 views
0

有人能告訴我請如何做到這一點:大寫首字母的每個字,除了網址

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! 

包括隔開的話「」如果可能的話,例如在美國

感謝

+1

用單詞分隔空格你可以用ucwords函數的php – 2011-05-30 17:03:19

回答

-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); 
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); 

請記住,這個功能不處理縮寫(它贏得美國不會改變美國)。國家代碼可以用幾種不同的方式處理。一個是製作國家代碼的散列表,並替換它們或使用正則表達式。