[PHP] preg_replace

Pagina: 1
Acties:

Onderwerpen


  • Rob
  • Registratie: Februari 2000
  • Niet online
Op www.tvopjepc.nl hebben ze mooie embedded players voor de omroep.nl streams.
Ik ben er nu ook mee aan het knutselen.
Ik wil van 1 stream-url het javascript url maken waarmee de stream in een pop-up embedded geopend wordt.

Voorbeeld

De stream: http://cgi.omroep.nl/cgi-...pspijkers/bb.20040327.asf

Moet worden: javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=wmbb&mpurl=http://cgi.omroep.nl/cgi-bin/streams?/tv/vara/kopspijkers/bb.20040327.asf&titel=Kopspijkers&genre=fossGsHEdGeZtHjPtDG&omroep=sgssGsHEdGeZtHjPpDsM&progurl=http://info.omroep.nl/vara/kopspijkers');

Daar bedacht ik de volgende code voor, die niet werkt....
code:
1
$archief = preg_replace("/http:(.*?)bb(.*?)asf target=_blank/","\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=wmbb&mpurl=http:\\1sb\\2asf&titel=Kopspijkers&genre=fossGsHEdGeZtHjPtDG&omroep=sgssGsHEdGeZtHjPpDsM&progurl=http://info.omroep.nl/vara/kopspijkers');\"",$archief);


Waarom de replace met bb en asf?
Simpel, ik wil hem ook makkelijk kunnen gebruiken voor de sb (is smallband) en rm (real bestanden)

Maar, dit wil dus niet werken. Ik heb me wezenloos gezocht naar de juiste replace actie, maar het wil niet werken. Soms wel, maar dan pakt ie een ander url weer niet.....

Iemand een idee hoe ik die preg_replace werkend krijg?

Sorry voor de lay-out....

[ Voor 6% gewijzigd door Rob op 22-09-2004 16:13 ]

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik vat nog niet helemaal wat je wil doen, maar is dit al meer in de goede richting:
code:
1
2
$archief = preg_replace("/http:(.*?)(sb|rm|asf) target=_blank/",
"\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=wmbb&mpurl=http:\\1\\2&titel=Kopspijkers&genre=fossGsHEdGeZtHjPtDG&omroep=sgssGsHEdGeZtHjPpDsM&progurl=http://info.omroep.nl/vara/kopspijkers');\"",$archief);

:?

Je geeft trouwens in je voorbeeld een stream. maar in je regex zie ik target=_blank staan die niet in je stream voorkomt. Beetje moeilijk voor ons om dan te gaan gokken hoe doe content van $archief er uit zou kunnen zien. Geef eens een beter voorbeeld van de te matchen string. Ik denk dat je dan meer reacties krijgt.

[ Voor 18% gewijzigd door Michali op 22-09-2004 17:54 ]

Noushka's Magnificent Dream | Unity


  • Rob
  • Registratie: Februari 2000
  • Niet online
Inderdaad, het was niet compleet duidelijk.
Ik heb de streams in tekst in het volgende formaat (nu een intressantere stream :P )

code:
1
2
3
4
5
6
7
<a href=http://cgi.omroep.nl/cgi-bin/streams?/tv/bnn/neukendoejezo/sb.20030224.rm target=_blank>naam link</a>

<a href=http://cgi.omroep.nl/cgi-bin/streams?/tv/bnn/neukendoejezo/bb.20030224.rm target=_blank>naam link</a>

<a href=http://cgi.omroep.nl/cgi-bin/streams?/tv/bnn/neukendoejezo/sb.20030224.asf target=_blank>naam link</a>

<a href=http://cgi.omroep.nl/cgi-bin/streams?/tv/bnn/neukendoejezo/bb.20030224.asf target=_blank>naam link</a>


Dit hierboven is dus ook gelijk de inhoud van $archief.

naam link is elke keer anders, dus daar kan ik niets mee.

Dat moeten dus 4 popupembeddedstreamlinkjes worden.
Overigens: programmanaam, url en genre kan ik zelf wel generen.

[ Voor 9% gewijzigd door Rob op 22-09-2004 18:45 ]

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


Acties:
  • 0 Henk 'm!

  • Rob
  • Registratie: Februari 2000
  • Niet online
Klein trapje

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
code:
1
preg_replace("/(http:\/\/[^\s]+(?rm|asf|sb))/", "javascript:window.open('\\1', '');", $archief);

Werkt dat dan niet?

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Rob
  • Registratie: Februari 2000
  • Niet online
Michali schreef op 24 september 2004 @ 13:49:
code:
1
preg_replace("/(http:\/\/[^\s]+(?rm|asf|sb))/", "javascript:window.open('\\1', '');", $archief);

Werkt dat dan niet?
Dit opent een window welke een stream opent. Hij opent het dus niet in een embedded player.

Helaas zijn de linkjes http://cgi.omroep.nl/cgi-...endoejezo/bb.20030224.asf niet de linkjes die een embedded player open.
De embeddedplayer wordt geopend door de javascriptcode 'openEmbeddedPlayer'

Ik probeer nu mijn code met de NDJZ streams van hierboven en hij doet wel wat, maar niet goed....

UPDATE:
Met

code:
1
2
3
4
5
$archief = preg_replace("/http:(.*?)bb(.*?)asf target=_blank/","\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=wmbb&titel=".$programmanaam."&genre=qdtjGsHEdGeZtHjPtDW&omroep=uyjsGsHEdGeZtHjPpDK&progurl=http://www.bnn.nl&mpurl=http:\\1bb\\2asf');\"",$archief);

$archief = preg_replace("/http:(.*?)sb(.*?)asf target=_blank/","\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=wmsb&titel=".$programmanaam."&genre=qdtjGsHEdGeZtHjPtDW&omroep=uyjsGsHEdGeZtHjPpDK&progurl=http://www.bnn.nl&mpurl=http:\\1sb\\2asf');\"",$archief);
$archief = preg_replace("/http:(.*?)bb(.*?)rm target=_blank/","\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=rmbb&titel=".$programmanaam."&genre=qdtjGsHEdGeZtHjPtDW&omroep=uyjsGsHEdGeZtHjPpDK&progurl=http://www.bnn.nl&mpurl=http:\\1bb\\2rm');\"",$archief);
$archief = preg_replace("/http:(.*?)sb(.*?)rm target=_blank/","\"Javascript: openEmbeddedPlayer('http://portal.omroep.nl/mplayer?mpstream=rmsb&titel=".$programmanaam."&genre=qdtjGsHEdGeZtHjPtDW&omroep=uyjsGsHEdGeZtHjPpDK&progurl=http://www.bnn.nlb&mpurl=http:\\1sb\\2rm');\"",$archief);


kan ik bovenstaande tekstbestand omzetten in correcte popups.
Maar... als ik het tekstbestand 2 keer achter elkaar zet, dan gaat het bij de 5e link mis.

Voorbeeld op http://www.rvgmedia.com/testrep.php
De 1e string is zoals hij hierboven in het forum staat (*2) en na conversie is na de code die in dit bericht staat.

[ Voor 67% gewijzigd door Rob op 24-09-2004 15:56 ]

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


Acties:
  • 0 Henk 'm!

  • Rob
  • Registratie: Februari 2000
  • Niet online
klein kickje

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


  • Rob
  • Registratie: Februari 2000
  • Niet online
;(

[ Voor 67% gewijzigd door Rob op 30-09-2004 23:37 ]

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...


Acties:
  • 0 Henk 'm!

  • Rob
  • Registratie: Februari 2000
  • Niet online
Opgelost:

Ik ga nu regel voor regel de tekst langs (dus niet in 1 keer)

In the beginning the Internet was a bunch of smart users with dumb terminals. Now...

Pagina: 1