PHP - Extraer parte de una cadena

 
Vista:
Imágen de perfil de Jorge

Extraer parte de una cadena

Publicado por Jorge (69 intervenciones) el 21/10/2016 20:26:31
1
$texto = "<option value=\"1458\" class=\"head\">Opcion</option>";

Quiero extraer el contenido de la etiqueta valué del option pero no hay manera hay algo mal en la sintaxis...

He probado así:

1
2
3
4
$value = explode('value=\"',$texto,2);
$value = explode('\"',$value[1]);
$value = $value[0];
echo $value;

Y así:

1
2
3
4
$value = explode('value="',$texto,2);
$value = explode('"',$value[1]);
$value = $value[0];
echo $value;

Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Extraer parte de una cadena

Publicado por Alejandro (157 intervenciones) el 21/10/2016 23:19:01
Hola Jorge puedes probar asi:

1
2
3
4
5
6
7
8
9
<?php
 
   $texto = "<option value='1458' class='head'>Opcion</option>";
 
   $value = explode("value='",$texto,2);
   $value = explode("'",$value[1]);
   $value = $value[0];
 
   echo $value;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

Extraer parte de una cadena

Publicado por jorge (69 intervenciones) el 22/10/2016 19:36:43
Gracias alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Extraer parte de una cadena

Publicado por kip (877 intervenciones) el 22/10/2016 01:49:50
Hola, puedes hacerlo de varias formas, aqui te dejo dos funciones en una usando métodos de PHP para encontrar coincidencias y en el otro haciendo uso de expresiones regulares.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$string = "<option value=\"1458\" class=\"head\">Opcion</option>";
 
function extractStr($string, $keyword) {
    $string2 = substr($string, stripos($string, $keyword) + strlen($keyword), strlen($string));
    $return = explode('"', $string2);
    return $return[0];
}
 
function extractStrRegex($string, $keyword) {
    preg_match("/(?:{$keyword}.\W)(\d+|\w+)/i", $string, $capture);
    return $capture[1];
}
 
echo extractStr($string, 'value="').'<br>';
 
echo extractStrRegex($string, 'value');

La que te recomiendo es la de expresiones regulares, ya que con ella podras extraer cualquier atributo del elemento por ejemplo:

1
2
3
4
5
6
7
8
<?php
 
function extractStrRegex($string, $keyword) {
    preg_match("/(?:{$keyword}.\W)(\d+|\w+)/i", $string, $capture);
    return $capture[1];
}
 
echo extractStrRegex($string, 'class');

En el código anterior logro obtener el contenido del atributo class del elemento, usa el que te sientas mas a gusto.

Nos avisas si te sirvio!

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

Extraer parte de una cadena

Publicado por jorge (69 intervenciones) el 22/10/2016 19:34:46
Me ha servido, mil gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar