Las etiquetas cortas de PHP no funcionan. Funciones PHP para expresiones regulares
Las expresiones regulares son muy Herramienta útil para desarrolladores. Con su ayuda, puede buscar, definir o reemplazar texto, palabras o cualquier otro carácter. El artículo de hoy ha recopilado 15 de las expresiones regulares más útiles que necesitará cualquier desarrollador web.
Introducción a las expresiones regulares
Muchos desarrolladores novatos encuentran que las expresiones regulares son muy difíciles de entender y usar. De hecho, no todo es tan complicado como parece. Antes de saltar directamente a las expresiones regulares, con su código útil y versátil, echemos un vistazo a los conceptos básicos:
Sintaxis de expresiones regulares
Expresión regular | Medio |
foo | La cadena "foo" |
^ foo | La línea comienza con "foo" |
foo $ | La línea termina con "foo" |
^ foo $ | "Foo" aparece solo una vez en una línea |
a, b o c | |
cualquier carácter en minúscula | |
[^ A-Z] | cualquier carácter que no esté en mayúsculas |
(gif | jpg) | Significa tanto "gif" como "jpeg" |
+ | Uno o más caracteres en minúscula |
Cualquier dígito, punto o signo menos | |
^{1,}$ | Cualquier palabra, al menos una letra, número o _ |
()() | wy, wz, xy o xz |
(^ A-Za-z0-9) | Cualquier carácter (ni un número ni una letra) |
({3}|{4}) | Significa tres letras o 4 números |
Funciones PHP para expresiones regulares
Función | Descripción |
preg_match () | La función preg_match () busca una cadena de acuerdo con un patrón dado, devuelve verdadero si se encuentra la cadena y falso, de lo contrario |
preg_match_all () | La función Preg_match_all () encuentra todas las apariciones de una cadena con patrón |
preg_replace () | La función preg_replace () funciona de la misma manera que ereg_replace (), excepto que las expresiones regulares se pueden usar tanto para especificar el patrón de búsqueda como para que la cadena reemplace el valor encontrado. |
preg_split () | La función preg_split () es la misma que split (), excepto que la expresión regular se puede usar como parámetro para el patrón de búsqueda. |
preg_grep () | La función Preg_grep () busca todos los elementos de la matriz de entrada, devolviendo todos los elementos que coinciden con el patrón expresión regular. |
preg_quote () | Escapa de los caracteres de expresión regular |
Verificación de nombre de dominio
Comprobando si la cadena es correcta nombre de dominio
$ url = "http://komunitasweb.com/"; if (preg_match ("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $ url)) (echo "Tu URL está bien . ";) else (echo" URL incorrecta ";)
Resaltar una palabra en un texto
Esta es una expresión regular muy útil, puede usarla para encontrar la palabra deseada y resaltarla. Especialmente útil para mostrar resultados de búsqueda.
$ text = "Oración de ejemplo de KomunitasWeb, regex se ha vuelto popular en la programación web. Ahora aprendemos regex. Según wikipedia, las expresiones regulares (abreviadas como regex o regexp, con formas plurales regexes, regexps o regexen) se escriben en forma formal lenguaje que puede ser interpretado por un procesador de expresiones regulares "; $ texto = preg_replace ("/ b (regex) b / i", " 1", $ texto); echo $ texto;
Resaltar los resultados de búsqueda en un blog de WordPress
Como se mencionó en el ejemplo anterior, este ejemplo de código es útil en los resultados de búsqueda y existe una excelente manera de implementar esta función en un blog de wordpress.
Abra su archivo search.php y busque la función the_title (). Reemplácelo con el siguiente código:
Echo $ título;
Ahora, encima de esta línea, agregue este código:
\0", $ título);?>
Guarde el archivo search.php y abra style.css. Agregue la siguiente línea:
Extracto de búsqueda fuerte (fondo: amarillo;)
Recuperar todas las imágenes de un documento HTML
Si alguna vez necesitó obtener todas las imágenes de una página web, este código debería estar allí. Puede crear fácilmente un cargador de imágenes utilizando las funciones cURL
$ imágenes = matriz (); preg_match_all ("/ (img | src) = (" | \ ") [^" \ ">] + / i", $ datos, $ medios); desarmado ($ datos); $ datos = preg_replace ("/ (img | src) (" | \ "| =" | = \ ") (. *) / i", "$ 3", $ medios); foreach ($ datos como $ url) ($ info = pathinfo ($ url); if (isset ($ info ["extensión"])) (if (($ info ["extensión"] == "jpg") || ($ info ["extensión"] == "jpeg") || ($ info ["extensión"] == "gif") || ($ info ["extensión"] == "png")) array_push ($ imágenes, $ url);))
Eliminar palabras duplicadas (no distingue entre mayúsculas y minúsculas)
Al escribir, ¿se repiten las palabras con frecuencia? Esta expresión regular ayudará.
$ texto = preg_replace ("/ s (w + s) 1 / i", "$ 1", $ texto);
Eliminar puntuación duplicada
Lo mismo, solo para la puntuación. Dile adiós a las comas dobles.
$ texto = preg_replace ("/.+/ i", ".", $ texto);
Buscar etiquetas XML / HTML
Esta es una función simple que toma dos argumentos. La primera es la etiqueta que necesita encontrar y la segunda es una variable que contiene XML o HTML. Nuevamente, esta función es muy conveniente de usar junto con cURL.
Función get_tag ($ etiqueta, $ xml) ($ etiqueta = preg_quote ($ etiqueta); preg_match_all ("(<".$tag."[^>]*>(.*?)".$tag.">. ")", $ xml, $ coincidencias, PREG_PATTERN_ORDER); devolver $ coincidencias; )
Encontrar etiquetas XHTML / XML con un valor de atributo específico
Esta función es muy similar a la anterior, excepto que puedes darle a la etiqueta el atributo deseado. Por ejemplo, puede encontrar fácilmente
Función get_tag ($ atributo, $ valor, $ xml, $ etiqueta = nulo) (if (is_null ($ etiqueta)) $ etiqueta = "\ w +"; más $ etiqueta = preg_quote ($ etiqueta); $ atributo = preg_quote ( $ atributo); $ valor = preg_quote ($ valor); $ tag_regex = "/<(".$tag.")[^>] * $ atributo \ s * = \ s * "." (["\"]) $ valor \\ 2 [^>] *> (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ coincidencias, PREG_PATTERN_ORDER); devuelve $ coincidencias;)
Encontrar valores de color hexadecimales
¡Otra herramienta útil para desarrolladores web! Le permite buscar / verificar el valor de color hexadecimal.
$ cadena = "# 555555"; if (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / i", $ string)) (echo "ejemplo 6 exitoso";)
Encontrar el título de un artículo
Este fragmento de código encontrará y mostrará el texto dentro de las etiquetas.
$ fp = fopen ("http://www.catswhocode.com/blog", "r"); while (! feof ($ fp)) ($ página. = fgets ($ fp, 4096);) $ título = eregi ("
Analizar registros de Apache
La mayoría de los sitios se ejecutan en el conocido servidor web Apache. Si su sitio es uno de ellos, ¿por qué no utilizar PHP y expresiones regulares para analizar los registros de Apache?
// Registros: servidor web Apache // Accesos exitosos solo a archivos HTML. Útil para contar el número de páginas vistas. "^ ((? # IP de cliente o nombre de dominio) S +) s + ((? # autenticación básica) S + s + S +) s + [((? # fecha y hora) [^]] +)] s + "(?: GET | POST | HEAD) ((? #Archivo) / [^?"] +?. Html?) ?? ((? # Parámetros) [^? "] +)? HTTP / + "s + (? # Código de estado) 200s + ((? # Bytes transferidos) [- 0-9] +) s +" ((? # Referrer) [^ "] *)" s + "(( ? # Agente de usuario) [^ "] *)" $ "// Registros: servidor web Apache // Solo errores 404" ^ ((? # IP del cliente o nombre de dominio) S +) s + ((? # Autenticación básica) S + s + S +) s + [((? # Fecha y hora) [^]] +)] s + "(?: GET | POST | HEAD) ((? #File) [^?"] +) ?? ((? # parámetros) [^? "] +)? HTTP / + "s + (? # Código de estado) 404s + ((? # Bytes transferidos) [- 0-9] +) s +" ((? # Referrer) [^ "] *)" s + "(( ? # Agente de usuario) [^ "] *)" $ "
Reemplazo de comillas dobles con comillas tipográficas
Si eres un amante de la tipografía, te encantará esta expresión regular que reemplaza a la habitual doble comillas, con comillas tipográficas. Wordpress utiliza una expresión regular similar en el contenido de la página.
Preg_replace ("B" b ([^ "x84x93x94rn] +) b" B ","? 1? ", $ Texto);
Comprobación de contraseña compleja
Esta expresión regular se asegurará de que se ingresen al menos seis caracteres, números, guiones y guiones bajos en el cuadro de texto.
El cuadro de texto debe contener al menos una mayúscula, una minúscula y un número.
"A (? = [-_ a-zA-Z0-9] *?) (? = [-_ a-zA-Z0-9] *?) (? = [-_ a-zA-Z0-9] *?) [-_a-zA-Z0-9] (6,) z "
WordPress: uso de una expresión regular para obtener imágenes de una publicación
Dado que muchos de ustedes son por usuarios de WordPress, es posible que necesite un código que le permita obtener todas las imágenes del texto del artículo y mostrarlas.
Para utilizar este código, simplemente péguelo en cualquier archivo de su tema.
Publicar Contenido; $ szSearchPattern = "~ ] * /> ~ "; // Ejecuta preg_match_all para tomar todas las imágenes y guardar los resultados en $ aPics preg_match_all ($ szSearchPattern, $ szPostContent, $ aPics); // Verifica si tenemos al menos 1 imagen $ iNumberOfPics = count ($ aPics); if ($ iNumberOfPics> 0) (// Ahora aquí harías lo que necesites hacer con las imágenes // Para este ejemplo, las imágenes solo se muestran para ($ i = 0; $ i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
Generación de emoticonos automáticos
Otra característica utilizada en wordpress es reemplazar automáticamente los emoticonos con una imagen sonriente.
$ texte = "Un texto con una carita :-)"; echo str_replace (":-)", " ", $ texte);
JavaScript está bloqueado en su navegador. ¡Habilite JavaScript para que el sitio funcione!
strip_tags
(PHP 3> = 3.0.8, PHP 4, PHP 5)
strip_tags- Elimina las etiquetas HTML y PHP de una cadenaDescripción
cuerda strip_tags(cadena str [, cadena allowable_tags])Esta función devuelve la cadena str de la que se han eliminado las etiquetas HTML y PHP. Para eliminar etiquetas, se utiliza un autómata, similar al utilizado en la función fgetss () .
El segundo argumento opcional se puede utilizar para especificar etiquetas que no deben eliminarse.
AtenciónComentario: El argumento allowable_tags se agregó en PHP 3.0.13 y PHP 4.0b3. CON Versiones PHP 4.3.0 También se eliminan los comentarios HTML.
Porque strip_tags () no comprueba la exactitud del código HTML, las etiquetas incompletas pueden provocar la eliminación de texto que no está incluido en las etiquetas.
Ejemplo 1. Ejemplo de uso strip_tags ()
$ texto = "Párrafo.
Un poco más de texto "; echo strip_tags ($ text); echo" \ n \ n ------- \ n "; // no eliminarEcho strip_tags ($ texto, "
"); // Permitir ,,echo strip_tags ($ texto, " ");
Este ejemplo dará como resultado:
Párrafo. Un poco más de texto -------
Párrafo.
Algo más de texto
AtenciónEsta función no cambia los atributos de las etiquetas especificadas en el argumento allowable_tags, incluidos style y onmouseover.
Desde PHP 5.0.0 strip_tags () seguro para procesar datos en forma binaria.
Esta función tiene un inconveniente importante: es el pegado de palabras al eliminar etiquetas. Además, la función tiene vulnerabilidades. Una función alternativa análoga a strip_tags:
c "* - html" sucio "se procesa correctamente cuando se pueden encontrar símbolos en los valores de los atributos de la etiqueta< >* - html roto se procesa correctamente * - comentarios, scripts, estilos, PHP, Perl, código ASP, etiquetas de MS Word, CDATA se cortan * - el texto se formatea automáticamente si contiene código html * - protección contra falsificaciones como: "<
Ver también la descripción de la función
Última actualización el 27 de noviembre de 2019 07:10:59 (UTC / GMT +8 horas)
Sintaxis de las etiquetas de apertura y cierre de PHP
Hay cuatro pares diferentes de etiquetas de apertura y cierre que se pueden usar en php. Aquí está la lista de etiquetas.
- Sintaxis predeterminada
- Etiquetas abiertas cortas
- Omita la etiqueta de cierre de PHP al final del archivo
Sintaxis predeterminada
La sintaxis predeterminada comienza con " php" and ends with "?>".
Ejemplo:
Etiquetas abiertas cortas
Las etiquetas cortas comienzan con "" and ends with "?>Las etiquetas de estilo corto solo están disponibles cuando están habilitadas en el archivo de configuración php.ini en los servidores.
Ejemplo:
echo "PHP example with short-tags"; ?>
Omita la etiqueta de cierre de PHP al final del archivo
Se recomienda que se omita una etiqueta PHP de cierre en un archivo que contenga solo código PHP para evitar que se produzcan espacios en blanco accidentales o que se agreguen nuevas líneas después de la etiqueta de cierre PHP, que pueden iniciar el almacenamiento en búfer de salida y causar efectos no solicitados.
Ejemplo:
Separación de declaraciones PHP
En PHP, las declaraciones terminan con un punto y coma (;) como C o Perl. La etiqueta de cierre de un bloque de código PHP implica automáticamente un punto y coma, no es necesario tener un punto y coma que termine la última línea de un bloque PHP.
Reglas para la separación de declaraciones
- un punto y coma
- Y / O
- una etiqueta PHP de cierre
Códigos válidos
En el ejemplo anterior, están presentes tanto el punto y coma (;) como una etiqueta PHP de cierre.
En el ejemplo anterior, no hay punto y coma (;) después de la última instrucción, pero hay una etiqueta PHP de cierre.
En el ejemplo anterior, hay un punto y coma (;) en la última instrucción pero no hay una etiqueta PHP de cierre.
Sensibilidad de mayúsculas y minúsculas de PHP
En PHP, las funciones, clases y palabras clave del lenguaje principal definidas por el usuario (por ejemplo, if, else, while, echo, etc.) no distinguen entre mayúsculas y minúsculas. Por lo tanto, las tres declaraciones de eco en el siguiente ejemplo son iguales.
Ejemplo 1
"); ECHO (" Estamos aprendiendo la distinción entre mayúsculas y minúsculas de PHP
"); EcHo (" Estamos aprendiendo la distinción entre mayúsculas y minúsculas de PHP
");
?>
Estamos aprendiendo la distinción entre mayúsculas y minúsculas de PHP Estamos aprendiendo la distinción entre mayúsculas y minúsculas de PHP Estamos aprendiendo la distinción entre mayúsculas y minúsculas de PHP
Por otro lado, todas las variables distinguen entre mayúsculas y minúsculas.
Considere el siguiente ejemplo. Solo la primera declaración muestra el valor como $ monto porque $ monto, $ CANTIDAD, $ monto son tres variables diferentes.
Ejemplo - 2
"); echo (" La cantidad es: $ AMOUNT
"); echo (" La cantidad es: $ monto
");
?>
La cantidad es: 200 La cantidad es: La cantidad es:
Insensibilidad a los espacios en blanco de PHP
En general, los espacios en blanco no son visibles en la pantalla, incluidos los espacios, tabulaciones y caracteres de final de línea, es decir, retornos de carro. En PHP, el espacio en blanco no importa en la codificación. Puede dividir una declaración de una sola línea en cualquier número de líneas o número de declaraciones separadas juntas en una sola línea.
Los siguientes dos ejemplos son iguales:
Ejemplo:
"; echo" Su clase es: $ class y Roll No. es $ roll_no ";) student_info (" David Rayy "," V ", 12)?>
Ejemplo: insensibilidad avanzada a los espacios en blanco
"; echo" Su clase es: $ class y Roll No. es $ roll_no ";) student_info (" David Rayy "," V ", 12)?>
El nombre del estudiante es: David Rayy Su clase es: V y Roll No. es 12
Ejemplo: insensibilidad de espacios en blanco con tabulaciones y espacios
En el siguiente ejemplo, los espacios y tabulaciones se utilizan en una operación numérica, pero en ambos casos, $ xyz devuelve el mismo valor.
"; // tabulaciones y espacios $ xyz = 11 + 12; echo $ xyz;?>
PHP: Comentarios de una sola línea y varias líneas
Comentario de una sola línea
PHP admite las siguientes dos formas diferentes de comentar.
# Este es un comentario de una sola línea.
// Esta es otra forma de comentario de una sola línea.
Ejemplo:
Comentarios de varias líneas
PHP admite comentarios de estilo "C". Un comentario comienza con el par de caracteres / * y termina con el par de caracteres * /.
/ * Esta es una prueba de comentarios múltiples,
y estas líneas serán ignoradas
en el momento de la ejecución * /
Ejemplo:
Los comentarios de varias líneas no se pueden anidar
Primer script PHP
Aquí está el primer script PHP que mostrará "Hello World ..." en el navegador web.
& lt? php echo "Hola mundo ..."; ?>
Las etiquetas le dicen al servidor web que trate todo dentro de las etiquetas como código PHP para ejecutar. El código es muy simple. Utiliza una función PHP incorporada "echo" para mostrar el texto "Hello World ..." en la página web. Todo lo que esté fuera de estas etiquetas se envía directamente al navegador.
Presentación pictórica
Combinando PHP y HTML
La sintaxis PHP es aplicable solo dentro de las etiquetas PHP.
PHP se puede incrustar en HTML y colocar en cualquier parte del documento.
Cuando PHP está incrustado en documentos HTML y PHP analiza este documento, interpretó la sección adjunta con una etiqueta de apertura () de PHP e ignore el resto del documento.
PHP y HTML se ven juntos en el siguiente ejemplo.
Practica aquí en línea:
Cuando el intérprete de PHP analiza el archivo, busca etiquetasque indican dónde comienza y termina el código PHP. Todo lo que esté fuera de un par de etiquetas de apertura y cierre será ignorado por el intérprete (es decir, simplemente se le dará al servidor web tal como está). Por ejemplo, un archivo pasado al intérprete de PHP tiene el siguiente código:
Esto será ignorado por el intérprete y simplemente se entregará tal cual, primero al servidor web, que a su vez lo entregará al navegador.
Esto también será ignorado por el intérprete y simplemente se pasará al servidor web tal como está.
Si el archivo contiene solo código PHP o está ubicado al final del archivo, es decir, no hay nada después, entonces es preferible omitir la etiqueta de cierre (no especificar). Esto ayuda a evitar agregar espacios en blanco aleatorios después de la etiqueta de cierre de PHP, lo que puede causar efectos no deseados.
PHP también permite el uso de una etiqueta abierta corta вместо
echo "Hello World!"; ?>
Caracteres de espacio en blanco
En el código PHP, puede utilizar caracteres de espacio en blanco: espacios, tabulaciones y saltos de línea. El número de espacios en blanco no está limitado y depende de las preferencias del programador, cuyo objetivo principal es crear un texto de programa (código fuente) claro y fácil de leer.
El siguiente ejemplo es un código PHP que usa espacios en blanco:
El código de ejemplo podría escribirse en una sola línea sin usar espacios en blanco, pero este código sería menos legible: