login  Naam:   Wachtwoord: 
Registreer je!
 Forum

preg_replace probleem

Offline Wim - 27/02/2006 10:22
Avatar van WimCrew algemeen
  1. <?php
  2. function imdb ($imdb) {
  3. $f = file_get_contents('http://www.imdb.com/title/'.$imdb.'/');
  4. $cntnt = explode ('<a href="/rg/title-tease/rating-stars/title/'.$imdb.'/ratings">',$f);
  5. $nl = explode('\n', $cntnt);
  6. return '<font color="red"><strong>IMDB Number: </strong></font><a href="http://www.imdb.com/title/'.$imdb.'/" target="_blank">\\1</a> '.$nl[2];
  7. }
  8.  
  9. $message = preg_replace('#\[imdb=(.*?)\]#si', imdb('\\1'), $message);
  10. $message = preg_replace('#\[imdb\](.*?)\[/imdb\]#si', imdb('\\1'), $message);
  11. ?>


In dit stukje zit de fout.
Citaat:
Warning: file_get_contents(http://www.imdb.com/title/1/): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/home/ie7764/domains/mizone.be/public_html/forum/viewtopic.php on line 1093

Warning: file_get_contents(http://www.imdb.com/title/1/): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/home/ie7764/domains/mizone.be/public_html/forum/viewtopic.php on line 1093

r1093 = $f = file_get_contents('http://www.imdb.com/title/'.$imdb.'/');

Overigens werkt het 2de stukje (in dezelfde functie met dezelfde variabele) wel: IMDB Number: tt0377092

Gebruikte script: PHPBB

Greetz,
GDX^

4 antwoorden

Gesponsorde links
Offline Voldemort - 27/02/2006 10:25
Avatar van Voldemort PHP ver gevorderde Op PHP.net staat dit:

Citaat:
Tip: Je kunt een URL als bestandsnaam gebruiken met deze functie als de "fopen wrappers" aan staan. Zie PHP.net: fopen voor meer informatie.


Misschien kan je daar wat met?
Offline Thomas - 27/02/2006 10:46
Avatar van Thomas Moderator De invoer klopt niet ($imdb is "\1") / imdb() wordt verkeerd aangeroepen?
Offline Wim - 27/02/2006 10:55 (laatste wijziging 27/02/2006 10:56)
Avatar van Wim Crew algemeen @fangorn: Overigens werkt het 2de stukje (in dezelfde functie met dezelfde variabele) wel: IMDB Number: tt0377092

kga eventjes wat met andere dingen (suck as line() enzo) expirimenteren ... 
Offline Richard - 27/02/2006 12:53
Avatar van Richard Crew algemeen lees eens wat meer over preg_replace modifiers, eg de 'e' modifier. deze zorgt dat de replacement als php word geevalueerd, op deze manier gaat het altijd fout, omdat de replacement niet gebeurt. (\1 blijft de literal \1, ipv de replacement, omdat de replacement in dit geval de output van imdb('\1') is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.241s