note 94669 added to function.ucwords
| From: | sicaatwnetcombr at osu1 dot php dot net | Date: | Tue, 17 Nov 2009 18:55:30 +0000 |
| Subject: | note 94669 added to function.ucwords | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-162996@lists.php.net to get a copy of this message | ||
This function (PRIMA) is to convert personal names written in the ISO 8859-1, especially for names
of Portuguese from Brazil (pt_BR). The first letter will be capitalized and the link names will be
tiny ( 'da', 'das', 'de', 'do', 'dos',
'e'). The letters that appear alone will be scored as short, with the exception la letra
'e' which is used as connection names like "Costa e Silva."
Esta função (PRIMA) é para converter nomes pessoais escritos no padrão ISO 8859-1;
especialmente para nomes do português do Brasil. A primeira letra ficará maiúscula e os
nomes de ligação ficarão minúsculos ('da', 'das', 'de',
'do', 'dos', 'e').
<?php
// autor: Carlos Sica
// PRImeira MAÃscula = PRIMA
// licensa GPL
function prima($nome){
// primeiro torna tudo minúsculo cuidando das acentuadas
for($char=0; $char<=strlen($nome); $char++){
// se for letra maÃscula acentuada transforma em minúscula acentuada
if((ord($nome[$char]) >= 192) && (ord($nome[$char]) <= 223))
$nome[$char] = chr(ord($nome[$char]) + 32);
}
// porque a função strtolower não pega letras acentuadas
$nome = explode(" ", strtolower($nome));
foreach ($nome as &$valor) {
// faz a primeira maÃscula excluindo as palavras que ligam dois nomes
if(($valor != "da") && ($valor != "das") && ($valor !=
"de") && ($valor != "do") && ($valor != "dos")
&& ($valor != "e"))
$valor[0] = strtoupper($valor[0]);
// coloca ponto de abreviação quando a letra vier sozinha, excluindo a letra 'e'
que liga dois nomes
if((strlen($valor) == 1) && ($valor[0] != "e") && (ord($valor[0]) <
0) && (ord($valor[0]) > 9))
$valor .= ".";
// se a primeira letra for minúscula acentuada transforma em maÃscula acentuada
if((ord($valor[0]) >= 224) && (ord($valor[0] <= 255)))
$valor[0] = chr(ord($valor[0]) - 32);
}
$nome = implode(" ", $nome);
return $nome;
}
?>
----
Server IP: 187.16.23.134
Probable Submitter: 200.201.30.215
----
Manual Page -- http://www.php.net/manual/en/function.ucwords.php
Edit -- https://master.php.net/note/edit/94669
Del: integrated -- https://master.php.net/note/delete/94669/integrated
Del: useless -- https://master.php.net/note/delete/94669/useless
Del: bad code -- https://master.php.net/note/delete/94669/bad+code
Del: spam -- https://master.php.net/note/delete/94669/spam
Del: non-english -- https://master.php.net/note/delete/94669/non-english
Del: in docs -- https://master.php.net/note/delete/94669/in+docs
Del: other reasons-- https://master.php.net/note/delete/94669
Reject -- https://master.php.net/note/reject/94669
Search -- https://master.php.net/manage/user-notes.php