Detectar un caracter con PHP
Para algunos proyectos en PHP viene muy bien detectar cadenas de textos.
Por ejemplo, si tenemos un formulario donde podemos poner la URL de una página web.
Puede que muchos usuarios no pongan “http://“, de modo que al hacer el link con el valor que han dado estos usuarios, la web no cargaría.
Entonces, ¿cómo hacemos para saber si han puesto o no el “http://“? Para saberlo recurriremos a la función
strrpos.
strrpos nos devuelve el valor del lugar que ocupa la cadena de texto especificada en caso de que ésta exista, o false en caso de que no esté.
strrpos necesita dos cadenas de texto para funcionar: La cadena de texto donde buscará y los caracteres que debe buscar.
strrpos(‘cadena donde buscar’, ‘caracteres a buscar’);
<?php
$web = $_POST['pagina_web'];
$web_f = $web;
$posicion = strrpos($web, "http://");
if ($posicion === false) {
/* No esta el http://, asi que modificamos la variable para que si que lo tenga */
$web_f = 'http://'.$web.'';
}
echo $web_f; /* Mostramos la url, que tendra http:// aunque el usuario no la haya puesto */
?>
El código es simple.
- Creamos una variable que tenga por valor el valor que ha introducido el usuario en el campo de página web.
- Creamos una nueva variable, que será la url final. Primero le damos el valor que ha introducido el usuario, para que si ha escrito http:// aparezca.
- Creamos la variable $posicion, que tendra por valor false en caso de no encontrar http:// y en caso de que sí que esté, la posicion de http://.
- Ahora hacemos una condicón: Si $posicion es false (es decir, que no está http://) …
- … creamos de nuevo la variable, pero esta vez añadiendo http:// …
- … y fin de la condición
- Por último mostramos la variable
¿Cómo lo probamos sin tener formulario?
Pues en la primera línea de código sustituimos:
$_POST['pagina_web'];
Por:
'miweb.com';
Exelente codigo, me sirvio mucho gracias!!!! :-D
Gracias por tu POST amigo, buena explicación, 5 stars.