2011-07-12 13 views
6

como soy nuevo en php, y después de Google :) Todavía no pude encontrar lo que quería hacer.cadena entre, php

He podido encontrar la posición de inicio y final en la cadena que quiero extraer, pero la mayoría del ejemplo usa cadenas o caracteres o números enteros para obtener la cadena entre, pero no he podido encontrar la cadena entre dos posiciones.

Por ejemplo: $ string = "Esta es una prueba que intenta extraer"; $ pos1 = 9; $ pos2 = 14;

Entonces me pierdo. Necesito obtener el texto entre la posición 9 y 14 de la cadena. Gracias.

Respuesta

8
$startIndex = min($pos1, $pos2); 
$length = abs($pos1 - $pos2); 

$between = substr($string, $startIndex, $length); 
+0

genial. funciona para mi. ¡gracias un montón! – Jackie

1
<?php 
$string = "This is a test trying to extract"; 
$pos1 = 9; 
$pos2 = 14; 

$start = min($pos1, $pos2); 
$length = abs($pos1 - $pos2); 

echo substr($string, $start - 1, $length); // output 'a test' 
?> 
+1

no controla caso en pos2 $ <$ pos1. –

+0

+1 Buena captura, nunca dependa de la interfaz de usuario para validar la entrada – JConstantine

+0

cool. funciona para mi. ¡gracias un montón! – Jackie

3

Puede usar substr() para extraer parte de una cadena. Esto funciona al establecer el punto de inicio y la duración de lo que desea extraer.

Así que en su caso sería:

$string = substr($string,9,5); /* 5 comes from 14-9 */