PHP – Trucchi e code-snippets per gestire le stringhe
| Posted in Php | Posted on 03-09-2010
0
Inutile star qui a sottolineare quante volte uno sviluppatore php si trovi a dover combattere con le stringhe. Nelle applicazioni, piccole o grandi che esse siano, nei progetti, nella gestione del proprio blog, nella modifica di un tema o nella creazione di un widget le stringhe possono comparire e non sempre si sà bene come manipolarle.
Eccovi alcuni trucchi e code-snippets utili per poter gestire al meglio le stringhe nelle operazioni più comuni.
Ottenere una sottostringa
Funzione basilare per ogni sviluppatore php : come ottenere una porzione di stringa dati un punto di inizio e fine. Eccola a voi :
function GetBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
Trasformare URL in hyperlinks
Se ci fate caso, quando lasciate un commento con URL su un blog Wordpress, in automatico vi sarà trasformato in un hyperlink. Se volete realizzare la stessa cosa nella vostra applicazione, ecco come fare in due righe :
$url = "Jean-Baptiste Jung (http://www.webdevcat.com)"; $url = preg_replace("#http://([A-z0-9./-]+)#", '<a href="$1">$0</a>', $url);
Rimuovere URLs da una stringa
Potrebbe esser utile, invece, per ragioni di spam e non solo, poter rimuovere URLs all’interno di una stringa :
$string = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i', '', $string);
Cercare una stringa all’interno di un’altra
Altra funzione molto utile e sfruttabile : come ricercare un testo preciso all’interno di una stringa.
function contains($str, $content, $ignorecase=true){
if ($ignorecase){
$str = strtolower($str);
$content = strtolower($content);
}
return strpos($content,$str) ? true : false;
}
Controllare se la stringa inizia con uno specifico pattern
La sua utilità rientra nel discorso fatto con l’opzione precedente. Alcuni linguaggi come il java hanno il metodo startWith che consente di controllare se una stringa inizia con un testo preciso. In php, occorre invece arraggiarsi così :
function String_Begins_With($needle, $haystack {
return (substr($haystack, 0, strlen($needle))==$needle);
}
Estrarre email da una stringa
Diciamo che si tratta del trucco utilizzato soprattutto dagli spammers per estrarre da forum e blog indirizzi email validi cui spammare di tutto. Ma potrebbe anche utile per altri scopi, direi :
function extract_emails($str){
// This regular expression extracts all emails from a string:
$regexp = '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
preg_match_all($regexp, $str, $m);
return isset($m[0]) ? $m[0] : array();
}
$test_string = 'This is a test string...
test1@example.org
Test different formats:
test2@example.org;
<a href="test3@example.org">foobar</a>
<test4@example.org>
strange formats:
test5@example.org
test6[at]example.org
test7@example.net.org.com
test8@ example.org
test9@!foo!.org
foobar
';
print_r(extract_emails($test_string));
Alla prossima puntata per parlare, invece, delle funzioni native messe a disposizione dal php.








