¿Cómo verificar si la URL contiene cierta string usando PHP?

Dada una URL y la tarea es verificar que la URL contenga cierta string o no. La URL son básicamente las strings. Entonces, para verificar la existencia de ciertas strings, se pueden seguir dos enfoques. El primer enfoque se utiliza para encontrar la coincidencia de substring en una string y el segundo enfoque es encontrar una coincidencia de expresión regular. PHP contiene funciones para estos dos enfoques.

Método 1:
Función strpos(): La función strpos() se utiliza para encontrar la primera aparición de una substring en una string. Si la substring existe, la función devuelve el índice inicial de la substring; de lo contrario, devuelve False si la substring no se encuentra en la string (URL).

Sintaxis:

int strpos( $String, $Substring )

Parámetros: La función strpos() acepta dos parámetros como se mencionó anteriormente y se describe a continuación.

  • $String: este parámetro contiene el texto donde se realiza la búsqueda.
  • $Substring: este parámetro contiene el patrón o substring que se va a buscar.

Programa: programa PHP para encontrar la string determinada en una URL usando la función strpos().

<?php
// PHP program to find certain substring in an URL
  
// Given URL
$url = 'https://www.geeksforgeeks.org/gfg/index';
  
// Search substring 
$key = 'gfg';
  
if (strpos($url, $key) == false) {
    echo $key . ' not exists in the URL <br>';
}
else {
    echo $key . ' exists in the URL <br>';
}
  
// Another search substring
$key = 'function';
  
if (strpos($url, $key) == false) {
    echo $key . ' not exists in the URL';
}
else {
    echo $key . ' exists in the URL';
}
  
?>
Producción:

gfg exists in the URL 
function not exists in the URL

Nota: La función strpos() encuentra la substring en un texto usando el método de coincidencia de strings. En algún momento da un resultado no deseado. Por ejemplo: si la URL de la string es https://www.geeksforgeeks.org/myfunction y la string secundaria es función , la string secundaria existe en la URL de la string. Supongamos que un sitio web quiere mostrar el resultado de la función , pero muestra el resultado de mi función, que es diferente. La función strpos() no verifica si una substring está presente como un todo o si está presente con sufijo o prefijo.

Nota: Para resolver este problema, es decir, si el patrón exacto está presente en una string (URL) o no, se usa la función preg_match().

Método 2:
Función preg_match(): La función preg_match() se utiliza para encontrar la coincidencia exacta de un patrón en un texto mediante la búsqueda de expresiones regulares. Aquí, dado un patrón de expresión regular, la función realiza una búsqueda en el texto y encuentra la coincidencia exacta, si está presente. Esta función devuelve verdadero si el patrón está presente y falso si el patrón no está presente.

Sintaxis:

preg_match( $pattern, $subject )

Parámetros: La función preg_match() acepta dos parámetros como se mencionó anteriormente y se describe a continuación.

  • $patrón: es el patrón de expresión regular para buscar como una string
  • $asunto: Es la string de texto sobre la cual se busca el patrón de expresión regular.

Programa 2: programa PHP para encontrar la coincidencia exacta de una string en una URL

<?php
// PHP program to find exach match substring
  
// Given a URL
$url = 'https://www.geeksforgeeks.org/gfg/myfunction';
  
// Here '\b' represents the block
  
// This pattern search gfg as whole words
$pattern = '/\bgfg\b/';
  
if (preg_match($pattern, $url) == false) {
    echo 'gfg does not exist in the URL <br>';
}
else {
    echo 'gfg exist in the URL <br>';
}
  
// Given another URL
$url2 = 'https://www.geeksforgeeks.org/myfunction';
  
// This pattern search function as whole words
$pattern = '/\bfunction\b/';
  
if (preg_match($pattern, $url2) == false) {
    echo 'function does not exist in the URL';
}
else {
    'function exist in the URL';
}
  
?>
Producción:

gfg exist in the URL 
function does not exist in the URL

Publicación traducida automáticamente

Artículo escrito por Arghyadip_Manna y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *