¿Cómo obtener una substring entre dos strings en PHP?

Para obtener una substring entre dos strings, hay algunas formas populares de hacerlo. A continuación se explican los procedimientos con el ejemplo.
Ejemplos: 
 

Input:$string="hey, How are you?"
If we need to extract the substring between 
"How" and "you" then the output should be are
 
Output:"Are"

Input:Hey, Welcome to GeeksforGeeks
If we need to get the substring between Welcome and 
for then it should be to geeks as for lies within GeeksforGeeks.

Output:" to geeks"

Método 1: En primer lugar, debe encontrar la posición final de la palabra inicial. Luego busque la posición inicial de la palabra final después de que devuelva la substring entre esos índices. 
El siguiente programa ilustra el enfoque:
Programa: 
 

PHP

<?php
    function string_between_two_string($str, $starting_word, $ending_word)
{
    $subtring_start = strpos($str, $starting_word);
    //Adding the starting index of the starting word to
    //its length would give its ending index
    $subtring_start += strlen($starting_word); 
    //Length of our required sub string
    $size = strpos($str, $ending_word, $subtring_start) - $subtring_start; 
    // Return the substring from the index substring_start of length size
    return substr($str, $subtring_start, $size); 
}
 
$str = 'Hey, Welcome to geeksforgeeks';
$substring = string_between_two_string($str, 'Welcome', 'for');
 
echo $substring;
     
?>

Producción: 
 

 to geeks

Método 2: Usar la función explotar(). La función de explosión divide la string dada sobre la base del parámetro proporcionado, es decir, el separador. 
Sintaxis: 
 

 $arr=explode(separator, string).

Esto devolverá una array que contendrá la string dividida en función del separador. 
 

  • Dividir la lista sobre la base de la palabra inicial.
  • En la array devuelta, el segundo índice contendrá las palabras después de la palabra inicial.
  • En la string proporcionada por el paso 2, si la dividimos nuevamente en función de la palabra final, el valor en el primer índice será la string entre la palabra inicial y la final.

El programa a continuación ilustra el 
programa de enfoque: 
 

PHP

<?php
  function string_between_two_string($str, $starting_word, $ending_word){
    $arr = explode($starting_word, $str);
    if (isset($arr[1])){
        $arr = explode($ending_word, $arr[1]);
        return $arr[0];
    }
    return '';
  }
 
  $str = "Hey, how are you?";
  $start = "Hey";
  $end = "you";
  $substring = string_between_two_string($str, $start, $end);
  echo $substring;
?>

Producción: 
 

, how are 

Publicación traducida automáticamente

Artículo escrito por anand27 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 *