php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.12.2006, 21:28  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard eval, preg_match ? php phrasen ? ^^

hallo, ich habe ein kleines template system mir selbst gebastelt, bin auch sehr zufireden für meine verhältnisse, nun habe ich ein problem, da das system via fopen arbeitet wird mein php nicht gephrast (was in den dateien ist), ich habe nun versucht via preg_match() eigenständig dies mit eval nachzuphrasen, kam aber nicht so weit....
das ist die funktion die das hauptproblem darstellt:
PHP-Code:
function parse_tpl($zeichenkette)
{
$search = array('/IMG/''/MAIN/''/MENU/');
$suchmuster array_reverse($searchTRUE);
$ersetzungen[0] = read_tpl('menu');
    if(
htmlspecialchars($_GET['x']) != "") {
        if(
check_tpl(htmlspecialchars($_GET['x'])) && htmlspecialchars($_GET['x']) != "index" && htmlspecialchars($_GET['x']) != "menu"
        { 
        
$ersetzungen[1] = read_tpl(htmlspecialchars($_GET['x'])); 
        } else {
        
$ersetzungen[1] = read_tpl('404'); }
        
        
} else {
$ersetzungen[1] = read_tpl('main');
}
$ersetzungen[2] = "tpl/default/img/";
return 
preg_replace($suchmuster$ersetzungen$zeichenkette);

edit: wenn ich $ersetzungen[1] mit eval phrase, setzt es sich an eine völlig andere stelle im skript ...
notyyy ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.12.2006, 22:27  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Also wenn du "parsen" meinst (phrasen gibts net, ist eher nen deutsches Wort für "Satz" oder "Wortkette" oder so) dann gibts da ne viel bessere Funktion für dich! Undzwar include()
Flor1an ist offline  
Alt 20.12.2006, 22:51  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

include kann ich nicht benutzen, liegt an meinem gesamtcode.... ich will beide möglichkeiten anbieten und via return preg_replace($suchmuster, $ersetzungen, $zeichenkette); auslesen lassen, include würde das nicht mitmachen, ....

$ersetzungen[1] = include('file'); geht ja schlecht, also MUSS ich es via fopen öffnen ....
notyyy ist offline  
Alt 20.12.2006, 23:08  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wofür verwendest du ein Templatesystem wenn du PHP Code im Template ausführen willst? Dann kannst du doch gleich PHP Dateien verwenden! Ist doch sonst total unnötig und fopen() macht dann alles nur langsamer!

Verwende doch etablierte Templatesysteme die schon lange existieren und ausgereift sind! Z.B. Smarty.
Flor1an ist offline  
Alt 20.12.2006, 23:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von notyyy
include kann ich nicht benutzen, liegt an meinem gesamtcode.... ich will beide möglichkeiten anbieten und via return preg_replace($suchmuster, $ersetzungen, $zeichenkette); auslesen lassen, include würde das nicht mitmachen, ....

$ersetzungen[1] = include('file'); geht ja schlecht, also MUSS ich es via fopen öffnen ....
Naja offenbar hast du dann einen Fehler in der Logik deiner Template-Engine. Wenn du jetzt schon anfängst zu flicken, ist deine Template-Engine jetzt schon reif für den Papierkorb.
Machs richtig oder garnicht.
Zergling-new ist offline  
Alt 20.12.2006, 23:18  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

ich wollt dch nur wissen wie ich alles zwische <?php und ?> prasen lassen kann ...,
ich denke jeder fängt mal klein an, ich dachte ggf kennt ihr eine möglichkeit, bzw hab ich einfach was übersehen, für mich ist es auch unklar warum ich nicht
$ersetzungen[1] = eval($ersetzungen[1]); schreiben kann ....

das skript ersetzt es dann nichtmehr richtig, wobei der array name der selbe ist o.O
notyyy ist offline  
Alt 20.12.2006, 23:39  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Es war auch nicht abwertend gemeint, mir ist schon klar, dass du hier nicht fragen würdest, wenn du schon alles wissen würdest. Egal, ist ja nicht für mich die Template-Engine.

eval() hat keinen Rückgabewert, höchstens der evaluierte Code erzeugt explizit mittels return einen.
Siehe Handbuch!
Zergling-new ist offline  
Alt 21.12.2006, 16:02  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

d.h. es ist praktisch unmöglich alles zwischen <? und ?> prasen zu lassen und an der richtigen stelle anzeigen zu lassen ?

ich hatte schon überlegt mit preg_match zu arbeiten und danach dann den code ausführen lassen, dann steht er aber an falscher stelle...

ich würde ja sehr gerne include benutzen, dies hat aber auch keinen return wert, oder gibt es da alternativen ?

require hat auch keinen return wert ?
wie sieht es mit virtual() aus, ich habs heute zum 1. mal gesehen, könnte das eine alternative sein?
notyyy ist offline  
Alt 21.12.2006, 16:05  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
ob_start
(); // Ausgabe unterdrücken
eval('echo "Hallo Eval!";');
$content ob_get_contents(); // Ausgabe in $content speichern
ob_end_clean(); // Ausgabe-Unterdrückung beenden

// ..

echo $content// Ausgabe: "Hallo Eval!"
?>
Zergling-new ist offline  
Alt 21.12.2006, 16:21  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

gibt es nicht die möglichkeit eine datei die auf dem server liegt vor zu parsen und den php code dann abzufangen ?

im prinzip als wäre es eine ajax anwendung, oder fsockopen auf nem externen server.....
notyyy ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
eval anno PHP Tipps 2008 9 30.09.2007 15:08
Code per eval umsetzen und Funktion integrieren Tscheggi PHP Tipps 2006 6 10.05.2006 10:46
eval vs. Array PHP-Fortgeschrittene 14 08.02.2006 17:27
[Erledigt] Navigation auf Smarty umstellen?! PHP-Fortgeschrittene 3 10.01.2006 09:19
perl eval und $@ in php? PHP Tipps 2007 4 15.11.2005 13:59
array keys mit eval erzeugen ff-webdesigner PHP-Fortgeschrittene 4 22.10.2005 18:44
eval für arrays sysop PHP Tipps 2005-2 4 26.09.2005 20:23
eval und DB PHP Tipps 2005-2 8 03.09.2005 09:58
irc bot probleme mit fread & eval PHP-Fortgeschrittene 8 02.07.2005 01:28
eval() oder str_replace? Was ist performanter? daniel987 PHP-Fortgeschrittene 9 14.05.2005 20:38
eval() Problem PHP Tipps 2005 7 18.04.2005 15:45
[Frage] Eval führt sich nur 1x aus danach ist ende... PHP Tipps 2005 4 17.03.2005 13:52
eval fehler abfangen PHP Tipps 2005 9 18.02.2005 19:37
eval und Cookie PHP Tipps 2004 4 27.10.2004 23:00
[Erledigt] Phrasen - Volltextsuche Datenbanken 0 25.06.2004 11:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php phrasen, smarty preg_match, phrase php, preg_match eval, php phrase, phrasr php, preg_match xss, phrasen php, php datei phrasen, eval bei str_replace ausführen?, phrase about php, fopen preg_match, preg_match smarty, phrasen mit php, php preg_match fopen quellcode, php preg_match zwischen quellcode fopen, php eval vs preg_match, php preg_match eval, eval preg_match, php fopen preg_match

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.