Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[REGEX] code aus einem string separieren?? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[REGEX] code aus einem string separieren??


 
123456
06-03-2004, 20:29 
 
Ich brauche Hilfe zu den regular Expressions!! :dontknow:
Also, ich habe mir auch das Tuturial durchgelesen, komme jedoch bei meinem Problem nicht wirklich weiter, da ich nicht alles 100%ig verstanden habe. Also mein Anliegen:

Ich lese Datenbankeinträge aus, in denen Html und PHP-Code gemischt sind. Ein Beispiel:

Die <b>Rubrik "<A href="links.php">Links</A>"</b> wurde aktualisiert.
Die in der Link-Datenbank gespeicherten Websites werden nach
Beliebtheitsgrad und Rubriken sortiert.
<BR>Über den Button "Serverstatus anzeigen" ist es möglich, im
Vorhinein die Verfügbarkeit der Websites zu prüfen.<?php

echo " <b>das ist nen versuch</b> ";

?>
Außerdem kann man die Link-Datenbank beliebig nach Stichworten
durchsuchen.

So, dieser Code ist einem String $string übergeben. Jetzt will ich, dass der String quasi ausgeführt wird. Der Html-Code soll direkt ausgegeben werden und der PHP-Code soll ausgeführt werden, so dass nachher folgendes ausgegeben wird:

Die <b>Rubrik "<A href="links.php">Links</A>"</b> wurde aktualisiert.
Die in der Link-Datenbank gespeicherten Websites werden nach
Beliebtheitsgrad
und Rubriken sortiert.
<BR>Über den Button "Serverstatus anzeigen" ist es möglich, im Vorhinein
die Verfügbarkeit der Websites zu prüfen. <b>das ist nen versuch</b>
Außerdem kann man die Link-Datenbank beliebig nach Stichworten
durchsuchen.

Hat jemand eine Ahnung, wie man soetwas realisieren könnte?
Geht das überhaupt mit regulären Ausdrücken?

Für eine Hilfe wäre ich sehr dankbar!!!

Sebastian

 
derHund
06-03-2004, 20:32 
 
würdest du bitte den beitrag umbrechen?

auch wenn ich deine vorgehensweise nicht 'toll' finde,
könnte eval() vielleicht helfen ...

 
123456
06-03-2004, 20:41 
 
mit eval hab ich es auch schon probiert..
leider gibt es dann einen fehler dieser art

Parse error: parse error, unexpected T_STRING in viewdetails.php(1660) : eval()'d code on line 1


die vorgehensweise muss leider in der weise sein, als dass ich den Usern meines Content-Management-Systems die Möglichkeit geben will PHP zu nutzen wenn sie Beiträge erstellen. So können Z.B. per Formular dynamische Elemente entworfen werden oder einfach mal eine "mitlaufende" aktuelle Jahreszahl schnell eingefügt werden.

http://www.muenster.org/paddelsport

 
derHund
06-03-2004, 20:46 
 
hmm,

eventuell mußt du die " escapen?

 
123456
06-03-2004, 20:47 
 
es muss daran liegen, dass der $string ja kein echo-Befehl enthält
Das Escapen alleine nützt leider nichts

 
derHund
06-03-2004, 20:49 
 
hmm,

wenn du die lösung kennst, frage ich mich, wo das problem ist?

ach, habs grad begirffen, sorry :)

 
123456
06-03-2004, 20:51 
 
wenn ich einen echo-Befehl ergänze wird der gesamte String ausgegeben mitsamt dem PHP-Code, welcher aber ausgeführt werden soll

 
derHund
06-03-2004, 20:54 
 
templates?

oder wirklich über regexp, was aber extrem blöd wär, wegen umständlichkeit.

du müßtest die vorkommen von <?PHP suchen, den enthaltenen code durch sein ausgeführtes eqivalent ersetzen, naja. nicht schön, aber doch auch nicht so dfas problem, oder? wodran scheiterts?

 
123456
06-03-2004, 21:02 
 
*seuftz* an den regexs. und daran, dass ich nicht weiß, wie ich den code ausführen kann.
Ich habe wirklich keine idee, wie ich soetwas realisieren könnte. Ich komme langsam vor Fehlern um ;-)

 
derHund
06-03-2004, 21:06 
 
machs so:

schreib den inhalt in eine datei, und include ihn?

wenn du den code per eval ausführst, erhälts du bei echo ja ne ausgabe, was ja nicht wirklich gewollt ist, du willst ja eher ne rückgabe, oder?

 
TobiaZ
06-03-2004, 21:08 
 
naja, das was du da versuchst erfordert schon einige grundlagen...

das mit dem ausführen hat derhund dir ja schon gepostet (ganz oben).

BTW: ich frage mich, warum ich das bis jetzt noch nie so machen musste.

 
derHund
06-03-2004, 21:10 
 
alternativ,

du kannst ja den code vor und nach den php-bereichen suchen, denn in ein echo packen, ....

 
123456
06-03-2004, 21:12 
 
jo stimmt. ist zwar kein guter stil, aber zumindest dürfte es funktionieren..


aber, wie sieht denn ein Befehl aus, mit dem dieses filtern zu realisieren wäre? meine regexs scheitern immer bei der auswahl des bereichs...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:31 Uhr.