[PHP] preg_replace met PHP code als resultaat

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

  • klaaz
  • Registratie: April 2000
  • Laatst online: 25-08 07:14

klaaz

it's me!

Topicstarter
Ik probeer een tag: [include=pyramide] zodanig te wijzigen dat er een PHP regel voor in de plaats komt:

include("./includes/\pyramide.php");

Ik gebruik hiervoor de volgende expressie:
$d_tekst = preg_replace('/\[include=(.*?)\]/i',include("./includes/\1.php"),$row->d_tekst);

Op de een of andere manier wordt de variabele: \1 niet goed geinterpreteerd.

De foutmelding:
Warning: main(./includes/.php) [function.main]: failed to create stream: No such file or directory in /usr/local/slash/apache/vhosts/metasales.nl/httpdocs/metamain.php on line 53

Warning: main() [function.main]: Failed opening './includes/.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/slash/apache/vhosts/metasales.nl/httpdocs/metamain.php on line 53
De tekst: $row->d_tekst komt uit een Mysql database en bestaat uit een opgemaakte tekst. Ergens in de tekst staat [include=pyramide]. Deze "tag" moet dus omgezet worden in een include waarmee eenvoudig een PHP bestand kan worden opgenomen in de tekst.

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 20:35
\1 is bij een regular expression dus een ascii code van 1. Lijkt mij niet geheel de bedoeling. Ik neem aan dat je gewoon het getal 1 wilt hebben. :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

zie Banpei en manual, en weet dat het per versie 4.04 (ongeveer) gebruikelijk is om een $ als backreference in pcre te gebruiken. (niet \1 maar $1 dus)

suc6.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Dit topic is gesloten.