Ajuda com preg_match. Aspas e espaços...

  • Autor Autor Okaro
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Okaro

Okaro

Épsilon
Usuário com poucas negociações! Use sempre o saldo do 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:

Inserir CODE, HTML ou 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í:

Inserir CODE, HTML ou 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.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição:
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 edição:
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.
 
Voltar
Topo