11. Funcions de cadena
Índex
Tot en majúscules, tot en minúscules
Les funcions
- $nova_cadena = strtoupper($cadena_inicial);
i
- $nova_cadena = strtolower(cadena_inicial);
converteixen una cadena de text en una altra que només té majúscules o minúscules, respectivament.
La funció strlen()
Aquesta funció mesura la longitud d'una cadena:
La funció substr()
La funció substring obté una cadena que és el fragment d'una altra. S'hi fan servir tres arguments: la variable que conté la cadena, el nombre corresponent al darrer caràcter exclòs (si no se n'exclou cap al principi, 0) i un nombre indicatiu de la longitud desitjada per a la nova cadena. Així, a
- $nova=substr($antiga,3,5);
obtindrem una cadena $nova formada pels caràcters quart a vuitè de la cadena $antiga.
- Document inicial, sense codi PHP, dotat d'un formulari.
- <?php
- $a = substr($_POST['n'],0,1); // Primera lletra del nom
- $a = strtoupper($a); // A majúscules (pel que pugui ser)
- $cgn = $_POST['c'] . "xxx"; // Previsió de cognoms molt curts, vg. 'Pi'
- $b = substr($cgn,0,3); // Tres primeres lletres del cognom
- $b = strtoupper($b); // A majúscules
- $min = gmdate(i); // Quin minut és ara?
- $c = substr($min,1,1); // Segona xifra dels minuts
- $d = strlen($_POST['n']); // Quina llargada té el nom?
- if ( $d > 9 ) { $d = 0; } // Si el nom té més de 9 caràcters, assignem '0'
- $e = gmdate(s); // Quin segon és ara?
- echo "<p>El teu codi d'usuari serà <strong style='color: blue'>$a$b$c$d$e</strong>.</p>";
- ?>
Vegeu-ne el resultat
En una situació real hi hauria moltes més tasques a fer: demanar una contrassenya, desar nom, cognoms, usuari i contrassenya en una base de dades, evitar que hi hagi usuaris repetits, etc. Aquí només ens ocupem de la determinació parcialment aleatòria de l'usuari.
La funció split()
Aquesta funció fragmenta una cadena d'acord amb un caràcter (o conjunt de caràcters) que fa de separador. Es crea un vector amb el conjunt dels fragments.
- $fragments = split('separador', $cadena, nombre de fragments)
Si no s'introdueix cap valor per al nombre de fragments, crea tots els que pot.
Sovint es fa servir en combinació amb list() o amb foreach():
- list($a,$b,$c,$d,$e,$f,$g,$h) = split(' ¬ ',$dades);
Ajustament de cadenes de text
Determinades operacions comporten la inclusió d'elements no desitjats en una cadena de text. Per exemple, la tramesa d'una cadena de text d'un document a un altre comporta que els apòstrofs es converteixen en la cadena \'. Determinades operacions de fragmentació deixen un espai en blanc davant o darrere el fragment obtingut.
La funció stripcslashes() suprimeix la barra invertida:
- $text_nou = stripcslashes($text_antic);
I la funció trim() elimina els espais en blanc inicials o finals:
- $text_nou = trim($text_antic);
- Document inicial, sense codi PHP, dotat d'un formulari.
- <?php
- echo "<p>";
- $dades = $_POST['noms'];
- $fragments = split (',', $dades); // Divideix la cadena per les comes
- foreach($fragments as $lloc){ // Lectura exhaustiva del vector
- $lloc = stripcslashes($lloc); // Supressió del símbol '\'
- $lloc = trim($lloc); // Supressió d'espais en blanc indeguts
- echo "$lloc<br />";
- }
- echo "</p>";
- ?>
Vegeu-ne el resultat
Substitucions de fragments de cadena
Amb la funció str_replace() podem substituir un fragment de cadena per una altre:
- $text_nou = str_replace("fragment_antic", "fragment_nou", $cadena_antiga);
- Document inicial, sense codi PHP, dotat d'un formulari.
- <?php
- echo "<p>";
- $text = $_POST['text'];
- $text = stripcslashes($text);
- $text = trim($text);
- $text = str_replace("l.l","l·l", $text); // Correcció de la grafia l.l
- $text = str_replace("l-l","l·l", $text); // Correcció de la grafia l-l
- echo $text;
- echo "</p>";
- ?>
Vegeu-ne el resultat
La funció nl2br()
- Si volem inserir un salt de línia en una variable, hem de fer servir el símbol \n per a indicar-lo.
- Si el volem inserir en un text introduït mitjançant un formulari, hem de fer servir la tecla de retorn.
Amb aquests dos procediments forcem un salt de línia en el codi XHTML. Però, com sabem, això no equival a un salt de línia en la interpretació final, que exigeix un <br />.
La funció nl2br() transforma els salts de línia previs a la interpretació en símbols <br />, que és adequadament interpretat per l'XHTML:
- text_amb_<br />_inserits = nl2br(text_inicial)
- Document inicial, sense codi PHP, dotat d'un formulari.
- <?php
- echo "<p>";
- $text = $_POST['text'];
- $text = stripcslashes($text);
- $text = trim($text);
- $text = nl2br($text); // Inserció de salts de línia interpretables
- echo $text;
- echo "</p>";
- ?>
Vegeu-ne el resultat