Ayuda con preg_match. Comillas y espacios...

  • Autor Autor Okaro
  • Fecha de inicio Fecha de inicio
Okaro

Okaro

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Saludos!!

Mis conocimientos de PHP son más que básicos, lo justo para acomodar dos cosas a mi blog y poco más.

El caso es que estoy intentando sacar una URL como alguna vez ya he hecho con preg_match pero ahora no sé hacerlo, ya que por medio hay comillas, espacios y dos puntos.

La URL que quiero obtener es la siguiente:

Insertar CODE, HTML o PHP:
"m3u8": "http://brutbe.com/9dffd121dea443808fe9281ea4d71ab3.m3u8?guids=275a9754-b4a3-45e1-a8ad-76e2205689b2_1280x720_874248_avc1.4d401f_mp4a.40.5,62d571aa-e716-46bf-8727-9b1ad1244547_768x432_500004_avc1.42c01e_mp4a.40.5&sign=00b86b460e670eb20fb48b69a0fc7d6b&expire=1433262030"

Al haber varias URL's en el texto, quiero sacar la que viene después de "m3u8" para que quede exáctamente así:

Insertar CODE, HTML o PHP:
http://brutbe.com/9dffd121dea443808fe9281ea4d71ab3.m3u8?guids=275a9754-b4a3-45e1-a8ad-76e2205689b2_1280x720_874248_avc1.4d401f_mp4a.40.5,62d571aa-e716-46bf-8727-9b1ad1244547_768x432_500004_avc1.42c01e_mp4a.40.5&sign=00b86b460e670eb20fb48b69a0fc7d6b&expire=1433262030

Pero no sé como hacerlo, ya que hasta ahora solo había sacado cadenas de texto sin comillas ni otros símbolos

Gracias.
 
Intenta con:
PHP:
$pattern = '/"m3u8": "([^"]*)"/i';

Saludos.
 
PHP:
<?php 
$pattern = '/"m3u8": "([^"]*)"/i';  
preg_match( $pattern, $output, $result); ?>
<p><?php echo $result[0]; ?></p>
<p><?php echo $result[1]; ?></p>

No me devuelve nada. ¿Algo que he escrito mal?

Gracias.
 
Última edición:
PHP:
<?php 
$pattern = '/"m3u8": "([^"]*)"/i';  
preg_match( $pattern, $output, $result); ?>
<p><?php echo $result[0]; ?></p>
<p><?php echo $result[1]; ?></p>

No me devuelve nada. ¿Algo que he escrito mal?

Gracias.

en vez de echo usa print_r:
PHP:
print_r( $result );
 
HTML:
Array ( )

Vamos, que por lo que veo no 'atrapa' nada.

Edito:

¿Puede ser por algo de 'codificación'? Buscando y buscando he conseguido cambiarlo dejándolo así:

PHP:
$pattern = '/&quot;m3u8&quot;: &quot;([^"]*)"/i';

Y ahora el array lo muestra correctamente desde donde quiero (http://......), pero no consigo que lo haga hasta las siguiente comillas. He probado a cambiar las comillas también por &quot; pero nada, va hasta el final como indica lo siguiente:

Array[0]
PHP:
"m3u8": "http://brutbe.com/route/9dffd121dea443808fe9281ea4d71ab3.m3u8?guids=275a9754-b4a3-45e1-a8ad-76e2205689b2_1280x720_874248_avc1.4d401f_mp4a.40.5,62d571aa-e716-46bf-8727-9b1ad1244547_768x432_500004_avc1.42c01e_mp4a.40.5&sign=2179a5dc92b932ab243a180f7fbc8873&expire=1433271395"}, "live_streams": {}, "advert": [{"name": "preroll", "url_template": "http://ad4.liverail.com/?LR_PUBLISHER_ID=12694&LR_PARTNERS=730260&LR_SCHEMA=vast2-vpaid&LR_URL=http://brutbe.com", "start": 0, "count": 1, "delay": 0, "only_fire": false, "xmltimeout": 2.5, "adtimeout": 3.0}], "stat": [{"name": "statstart", "url_template": "http://www.tns-counter.ru/V13a***R>{{dl}}*brutbe_com/ru/UTF-8/tmsec=brutbe_{{category_short_name}}/{{random}}", "start": 0, "count": 0, "delay": 0}, {"name": "statend", "url_template": "http://www.tns-counter.ru/V13a***R>{{dl}}*brutbe_com/ru/UTF-8/tmsec=brutbe_advert{{category_short_name}}/{{random}}", "start": 0, "count": 0, "delay": 0}, {"name": "statstart", "url_template": "https://relap.io/api/v2/pixel.gif?url=http://brutbe.com/video/{{eid1}}&title={{contentTitle}}&referrer={{dl}}&r={{random}}&res=", "start": 0, "count": 0, "delay": 0}, {"name": "statend", "url_template": "http://mc.yandex.ru/watch/21211267?page-ref={{dl}}&page-url=goal://brutbe.com/video/{{eid1}}/END", "start": 0, "count": 0, "delay": 0}], "sid": null, "log_level": 1, "acl_access": {"err_code": null, "err_text": "", "allowed"

Array[1]
PHP:
http://brutbe.com/route/9dffd121dea443808fe9281ea4d71ab3.m3u8?guids=275a9754-b4a3-45e1-a8ad-76e2205689b2_1280x720_874248_avc1.4d401f_mp4a.40.5,62d571aa-e716-46bf-8727-9b1ad1244547_768x432_500004_avc1.42c01e_mp4a.40.5&sign=2179a5dc92b932ab243a180f7fbc8873&expire=1433271395"}, "live_streams": {}, "advert": [{"name": "preroll", "url_template": "http://ad4.liverail.com/?LR_PUBLISHER_ID=12694&LR_PARTNERS=730260&LR_SCHEMA=vast2-vpaid&LR_URL=http://brutbe.com", "start": 0, "count": 1, "delay": 0, "only_fire": false, "xmltimeout": 2.5, "adtimeout": 3.0}], "stat": [{"name": "statstart", "url_template": "http://www.tns-counter.ru/V13a***R>{{dl}}*brutbe_com/ru/UTF-8/tmsec=brutbe_{{category_short_name}}/{{random}}", "start": 0, "count": 0, "delay": 0}, {"name": "statend", "url_template": "http://www.tns-counter.ru/V13a***R>{{dl}}*brutbe_com/ru/UTF-8/tmsec=brutbe_advert{{category_short_name}}/{{random}}", "start": 0, "count": 0, "delay": 0}, {"name": "statstart", "url_template": "https://relap.io/api/v2/pixel.gif?url=http://brutbe.com/video/{{eid1}}&title={{contentTitle}}&referrer={{dl}}&r={{random}}&res=", "start": 0, "count": 0, "delay": 0}, {"name": "statend", "url_template": "http://mc.yandex.ru/watch/21211267?page-ref={{dl}}&page-url=goal://brutbe.com/video/{{eid1}}/END", "start": 0, "count": 0, "delay": 0}], "sid": null, "log_level": 1, "acl_access": {"err_code": null, "err_text": "", "allowed"

SEGUNDA EDICIÓN:

De esta manera me funciona perfectamente:

PHP:
    $pattern = '/&quot;m3u8&quot;: &quot;(.*?)&quot;/i';

Gracias a todos!!! A partir de vuestras pistas y Google, al final solucionado!!!!

Un Saludo!!!
 
Última edición:
Pues por eso era que no encontraba nada, porque no habia ninguna " 😕, de preferencia deberias mejor convetir los caracteres y después buscar (con la primera que te habia dicho).

Saludos.
 
...de preferencia deberias mejor convetir los caracteres y después buscar (con la primera que te habia dicho).

¿Cómo se haría para convertir los caracteres?

Un Saludo y Gracias.
 
Atrás
Arriba