En el post pasado aprendimos para qué son las funciones y cómo crearlas. Pero en PHP ya existen en memoria funciones que nos permiten realizar distintas operaciones al invocarlas. A continuación veremos algunas de las funciones más utilizadas:
round()
Esta función nos permitirá hacer redondeo, osea recibirá como parámetro un número y si el valor después del punto (o de la coma) es menor a 50 redondeará para abajo, de lo contrario lo hará un número más:
<?php $decimal = 1.49; $decimal_redondeado = round($decimal); echo $decimal_redondeado; ?>
En este caso el resultado será:
1
Pero si en cambio modificamos el número decimal por 1.75:
<?php $decimal = 1.75; $decimal_redondeado = round($decimal); echo $decimal_redondeado; ?>
Entonces el resultado será:
2
Esta función es muy útil a la hora de sacar promedios.
floor()
Esta función también hará un redondeo pero siempre para abajo, osea que si tenemos esto:
<?php $decimal = 1.50; $decimal_redondeado = floor($decimal); echo $decimal_redondeado; ?>
Nos devolverá por pantalla:
1
ceil()
Si en cambio queremos que el redondeo sea siempre para arriba deberíamos usar ceil():
<?php $decimal = 1.50; $decimal_redondeado = ceil($decimal); echo $decimal_redondeado; ?>
En donde el resultado será por supuesto:
2
rand()
La función rand() es una de las más útiles que hay. Esta función generará un número al azar que irá desde un rango desde/hasta. Por ejemplo si quisiéramos devolver un número desde el 1 al 9 (inclusive):
<?php $numero_al_azar = rand(1, 9); echo $numero_al_azar; ?>
A mí me devolvió:
3
Pero puede devolver cualquiera de los número de los rangos comprendidos.
strtoupper()
Convierte una cadena en mayúscula;
<?php $palabra = 'Me encantan las arepas venezolanas.'; $palabra_mayuscula = strtoupper($palabra); echo $palabra_mayuscula; ?>
Esto devolverá por pantalla:
ME ENCANTAN LAS AREPAS VENEZOLANAS.
strtolower()
Esta función es lo contrario a la anterior, convertirá una cadena pero en minúsculas:
<?php $palabra = 'No GRITES, habla bajito.'; $palabra_minuscula = strtolower($palabra); echo $palabra_minuscula; ?>
Esto nos mostrará por pantalla:
no grites, habla bajito.
ucfirst()
En este caso, esta función sólo nos convertirá la primer letra de una cadena en mayúscula:
<?php $palabra = 'fernando'; $nombre = ucfirst($palabra); echo $nombre; ?>
Devolverá por pantalla:
Fernando
ucwords()
En este caso, esta función recibirá una cadena y convertirá el mayúscula los primeros caracteres de cada palabra:
<?php $palabra = 'fernando gonzalo gaitan'; $nombre_completo = ucwords($palabra); echo $nombre_completo; ?>
Esto va a imprimir:
Fernando Gonzalo Gaitan
strlen()
Nos dará la cantidad de caracteres que tiene una cadena:
<?php $cancion = 'De aquel amor de música ligera, nada nos libra, nada más queda'; $cantidad_de_caracteres = strlen($cancion); echo $cantidad_de_caracteres; ?>
Esto da como resultado:
64
substr()
Esta función nos permitirá seleccionar cuántos caracteres queremos mostrar de una cadena. Recibe tres parámetros, el primero es el la cadena en sí, el segundo es a partir de qué caracter queremos que se muestre (empieza desde 0) y el tercero hasta cuál:
<?php $cancion = 'De aquel amor de música ligera, nada nos libra, nada más queda'; $cancion_cortada = substr($cancion, 0, 11); echo $cancion_cortada; ?>
Esto nos dará como resultado:
De aquel am
trim()
Ésta es otra de las funciones más usadas de PHP, se trata de una función simple, pero muy útil, la misma cortará los espacios en las cadenas tanto adelante como atrás:
<?php $cadena = ' Hola '; $cadena_cortada = trim($cadena); echo $cadena_cortada; ?>
Para comprobar su correcto funcionamiento podemos utilizar la función strlen() y ver el comportamiento de trim():
<?php $cadena = ' Hola '; $cadena_cortada = trim($cadena); echo strlen($cadena) . '<br />'; echo strlen($cadena_cortada) . '<br />'; ?>
Esto por pantalla devolverá:
6 4
Como vemos la segunda variable tendrá sólo 4 caracteres ya que los caracteres de adelante y atrás se eliminarán.
Sin embargo trim() no sólo funciona para eliminar espacios al principio y al final, puede eliminar cualquier tipo de caracter si le agregamos un segundo parámetro con el mismo:
<?php $cadena = '///Hola///'; $cadena_cortada = trim($cadena, '/'); echo $cadena_cortada; ?>
Al imprimir el resultado por pantalla veremos:
Hola
str_replace()
La función str_replace() nos permitirá buscar una cadena específica y reemplazarla por otra, por ejemplo podríamos reemplazar guiones bajo por guiones del medio:
<?php
$frase = 'Marge_creo_que_odio_a_Mickael_Jackson.';
$frase_modificada = str_replace('_', '-', $frase);
echo $frase_modificada;
?>
El resultado será:
Marge-creo-que-odio-a-Mickael-Jackson.
Pero como dijimos antes, se pueden modificar cadenas, osea no sólo un caracter:
<?php
$frase = 'Una manzana y una manzana son dos manzanas';
$frase_modificada = str_replace('manzana', 'naranja', $frase);
echo $frase_modificada;
?>
Esto imprime por pantalla:
Una naranja y una naranja son dos naranjas
var_dump()
La función var_dump() es muy útil en tiempo de desarrollo a la hora de testear datos ya sean de una variable o de lo que devuelve una función. Esta función nos devolverá la estructura de una variable cualquiera:
<?php
$cadena = 'Manzana';
$numero = 5;
$valor_logico = true;
$coleccion = array('Azul', 'Rojo', 'Verde');
echo '<pre>';
var_dump($cadena) . '<br />';
var_dump($numero) . '<br />';
var_dump($valor_logico) . '<br />';
var_dump($coleccion) . '<br />';
echo '</pre>';
?>
Esto devuelve:
string(7) "Manzana"
int(5)
bool(true)
array(3) {
[0]=>
string(4) "Azul"
[1]=>
string(4) "Rojo"
[2]=>
string(5) "Verde"
}
sort()
La función sort() permite ordenar un array alfabéticamente, vale aclarar que el valor del parámetro se hace por referencia, por tanto éste se modificará directamente:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
sort($nombres);
foreach($nombres as $item){
echo $item . '<br />';
}
?>
Esto imprimirá la lista ordenada de nombres:
Ana Jorge Juan Maria Pedro
rsort()
Funciona igual que sort(), sólo que el orden lo hace de forma descendente:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
rsort($nombres);
foreach($nombres as $item){
echo $item . '<br />';
}
?>
El resultado es:
Pedro Maria Juan Jorge Ana
shuffle()
Desordena las posiciones de un array. También se pasa por referencia:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
shuffle($nombres);
foreach($nombres as $item){
echo $item . '<br />';
}
?>
Por ejemplo en mi caso me ha devuelto:
Maria Ana Jorge Juan Pedro
array_push()
Agrega una posición nueva al final de un array, recibe dos parámetros, el mismo array y el valor nuevo:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
array_push($nombres, 'Carlos');
foreach($nombres as $item){
echo $item . '<br />';
}
?>
El resultado es:
Juan Pedro Maria Jorge Ana Carlos
array_unshift()
A diferencia de array_push() agrega una nueva posición, pero al principio:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
array_unshift($nombres, 'Carlos');
foreach($nombres as $item){
echo $item . '<br />';
}
?>
En este caso el resultado será:
Carlos Juan Pedro Maria Jorge Ana
in_array()
Buscará un valor dentro de un array, si lo encuentra devuelve true y sino false:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
$nombre_a_buscar = 'Jorge';
if(in_array($nombre_a_buscar, $nombres)){
echo 'El nombre se encuentra en la lista';
}else{
echo 'El nombre NO se encuentra en la lista';
}
?>
En nuestro caso como el nombre ‘Jorge’ está en el array devolverá:
El nombre se encuentra en la lista
count()
Devuelve la cantidad de posiciones que tiene un array:
<?php
$nombres = array('Juan', 'Pedro', 'Maria', 'Jorge', 'Ana');
$nombres_total = count($nombres);
echo $nombres_total;
?>
El resultado es:
5
explode()
La función explode() convertirá un string en un array indicándole como referencia un valor que permitirá separar las distintas posiciones. Por ejemplo si tuviéramos una cadena:
$paises_cadena = 'Argentina - Bolivia - Brasil - Chile - Paraguay - Uruguay';
Y quisiéramos convertir esto en un array en donde cada posición será un país, deberíamos usar un delimitador, que en este caso es el signo ‘-‘:
<?php
$paises_cadena = 'Argentina - Bolivia - Brasil - Chile - Paraguay - Uruguay';
$paises_arreglo = explode('-', $paises_cadena);
foreach($paises_arreglo as $item){
echo $item . '<br />';
}
?>
El resultado será entonces:
Argentina Bolivia Brasil Chile Paraguay Uruguay
impode()
Esta función es lo inverso a explode(), convierte un array en un string, y concatenará la cadena con las distintas posiciones por un delimitador:
<?php
$paises_arreglo = array('Colombia', 'Ecuador', 'Peru', 'Venezuela');
$paises_cadena = implode(' - ', $paises_arreglo);
echo $paises_cadena;
?>
El resultado será:
Colombia - Ecuador - Peru - Venezuela
En PHP existen muchísimas funciones, las que vimos son sólo algunas, pero hay muchas más. Cuando necesitamos realizar alguna operación es cuestión de buscar en el manual de PHP:
Saludos!
Anterior: Aprendiendo PHP, parte 10: Funciones
Siguiente: Aprendiendo PHP, parte 12: Fechas

En el caso de ucfirst() se especifica que esta función sólo nos convertirá la primer letra de una cadena en mayúscula. Pero una cadena es todo un texto. Cómo hacer para que cada frase dentro de la cadena ponga en mayúscula después de encontrar un punto? Que respete ortografía pues ucfirst solo afecta a la primera letra del texto y quiero introducirlo en un receptor de comentarios.
Fijate acá:
http://php.net/manual/fr/function.ucfirst.php
La función es:
function ucsentence ($string){
$string = explode (‘.’, $string);
$count = count ($string);
for ($i = 0; $i < $count; $i++){ $string[$i] = ucfirst (trim ($string[$i])); if ($i > 0){
if ((ord($string[$i]{0})<48) || (ord($string[$i]{0})>57)) {
$string[$i] = ‘ ‘ . $string[$i];
}
}
}
$string = implode (‘.’, $string);
return $string;
}
Saludos!
Gracias Fernando.
Encontré también esta que funcionó perfecto:
http://www.forosdelweb.com/f18/capitalizacion-textos-php-1054375/#post4449169
Mi adaptación es que el comentario que llega todo en mayúsculas primero lo convierto y luego capitalizo las primeras letras después del punto. Queda así:
$opinion = ucfirst(strtolower($contenido));
function capitaliza_frases($opinion){
$cadenas = explode(‘.’,$opinion);
$cadena_final=»;
foreach ($cadenas as $cadena){
$cadena_sin_espacios = ltrim($cadena);
// no uso esa cantidad, seria mejor si la respetara
$cant_espacios = strlen($cadena)-strlen($cadena_sin_espacios);
$cadena_final .= ‘. ‘.ucfirst($cadena_sin_espacios);
}
return substr($cadena_final,1);
}
$comenta_bien = capitaliza_frases($opinion);