login  Naam:   Wachtwoord: 
Registreer je!
 Forum

str_replace met PHP code

Offline Koek - 08/06/2009 19:21 (laatste wijziging 08/06/2009 19:22)
Avatar van KoekNieuw lid Hallo,

Ik ben tegen een probleempje aangelopen tijdens het bouwen van m'n eigen CMS'je.

Alle teksten van de inhoud staan in de database, maar daar wil ik natuurlijk geen PHP code in plaatsen.
Dus ik denk, ik replace gewoon een 'tag' in de tekst, zodat je die wel in de db kan plaatsen, zoiets als het volgende, bijvoorbeeld:
  1. <?php
  2. $text = 'Dit is de gebruikers lijst: {user_list}';
  3. $search = '{user_list}';
  4. $replace = '<?php include(\'user_list.php\'); ?>';
  5.  
  6. $content = str_replace($search, $replace, $text);
  7. ?>


Maar dat werkt dus niet, hij ziet het stukje php code als een html tag of iets dergelijks.

Nu is mijn vraag hoe ik dit op kan lossen?
Misschien een totaal andere aanpak, in plaats van str_replace?

Alvast bedankt,
Maikel.

15 antwoorden

Gesponsorde links
Offline Martijn - 08/06/2009 19:24 (laatste wijziging 08/06/2009 19:24)
Avatar van Martijn Crew PHP ' vervangen door ". Dus single door double

edit: bij de $replace
Offline Koek - 08/06/2009 19:26 (laatste wijziging 08/06/2009 19:26)
Avatar van Koek Nieuw lid Welke? Die buitenste? en dan de slashes weghalen?

"<?php include('user_list.php'); ?>";

Dat maakt geen verschil..
Offline Martijn - 08/06/2009 19:31
Avatar van Martijn Crew PHP hmm dacht dat dat het was omdat alles tussen single letterlijk word genomen.
Wat zou kunnen is:
  1. $content = file_get_contents("user_list.php");

en dat in je replace zetten

en als dat niet werkt, alles wat in user_list.php echoëd in een $var zetten, dan boven je replace includen en dan die $var in je replace zetten
Offline Koek - 08/06/2009 20:04
Avatar van Koek Nieuw lid Helaas, werkt ook beide niet...
Offline Martijn - 08/06/2009 20:06
Avatar van Martijn Crew PHP die laatste werkt zeker weten wel, dan heb je het verkeerd gedaan 
Offline Koek - 08/06/2009 20:07
Avatar van Koek Nieuw lid Werkt ook niet helemaal soepel, en dan zou ik weer heel omslachtig m'n while-lus in één enkele variabele moeten zetten?
Is niet helemaal wat ik bedoel...
Offline Wim - 08/06/2009 20:16
Avatar van Wim Crew algemeen Je kan het trouwens wel doen met preg_replace. Dit heeft een optie (e) om php code te laten uitvoeren:
  1. $text= preg_replace ("_\{userlist\}_se", "include('user_list.php');", $text);


Of het bestand telkens includen verstandig is is een andere vraag...
Offline Koek - 08/06/2009 20:22
Avatar van Koek Nieuw lid Hm.. Heb nu dit:
  1. <?php
  2. $content = preg_replace ("_\{photo_album_list\}_se","include('content/photo_album_list.php');",$arr['content_text']);
  3. echo $content;
  4. ?>


Maar krijg dit:

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in /home/route66/public_html/inc/content.php on line 24.

(en lijn 24 is dus die regel..)
Offline Joost - 08/06/2009 20:25
Avatar van Joost PHP expert
  1. <?php
  2. $content = preg_replace ("#\{photo_album_list\}#se","include('content/photo_album_list.php');",$arr['content_text']);
  3. echo $content;
  4. ?>

Die zou het moeten doen  
Offline Wim - 08/06/2009 20:46
Avatar van Wim Crew algemeen
Koek schreef:
Hm.. Heb nu dit:
[..code..]

Maar krijg dit:

Warning: preg_replace() [function.preg-replace]: Unknown modifier 'a' in /home/route66/public_html/inc/content.php on line 24.

(en lijn 24 is dus die regel..)


owja, sorry, de _ was ik vergeten te escapen 

Die van medievel doet het ook, dit is hetzelfde:
  1. $content = preg_replace ("_\{photo\_album\_list\}_se","include('content/photo_album_list.php');",$arr['content_text']);
Offline Koek - 08/06/2009 20:55
Avatar van Koek Nieuw lid 't Werkt in principe wel, maar...
Nu komt het ge-include script bovenaan de pagina te staan, en niet op de locatie waar ik de 'tag' ( {photo_album_list} ) heb staan..

(en om een of andere vage reden staat er een '1' wél op de locatie waar de tag staat...)
Offline Martijn - 08/06/2009 21:21
Avatar van Martijn Crew PHP die 1 staat voor true dat t gelukt is. ongeveer dan
Offline Koek - 08/06/2009 21:24
Avatar van Koek Nieuw lid Oja, dat is best logisch  
Maar het is dus nog niet helemaal gelukt.. Iemand nog een ideetje?

Misschien iets totaal anders dan preg of str _replace?
Offline Wim - 08/06/2009 21:34
Avatar van Wim Crew algemeen en wat als je gebruik maakt van file_get_contents ipv include?
Offline Koek - 08/06/2009 21:38
Avatar van Koek Nieuw lid Werkt ook niet zoals ik het wil...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.417s