Прописать первую букву каждого слова, кроме URL - PullRequest
0 голосов
/ 30 мая 2011

Может кто-нибудь сказать мне, пожалуйста, как это сделать:

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!

Включая слова, разделенные '.'если возможно, например, в США

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 мая 2011

попробуйте это:

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

Имейте в виду, что эта функция не обрабатывает аббревиатуры (она не изменит США на США). Коды стран могут обрабатываться несколькими различными способами. Один из них - создать хэш-карту кодов стран и заменить их или использовать для этого также регулярное выражение.

0 голосов
/ 30 мая 2011

Чтобы сохранить URL-адреса ниже:

$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...