php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2010, 10:51  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
tarzanhb befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Funktionsaufruf aus einer externen PHP Datei

Hi,
Hatte gerade eine Diskussion, wie ich eine PHP Funktion aus einer externen Datei einbinde.
Das Problem dabei ist, die Datei,
die diese Funktion enthält führt andere Funktionsaufrufe durch
und beim includen führt dies zu einer Endlosschleife mit Timeout Abbruch.

Jetzt stellt sich mir die Frage, wie ich aus einer Datei nur die Funktion einbinde und nicht die Aufrufe, welche mit in der Datei stehen.

Klar kann man die Datei umschreiben.
Mir geht es einfach darum ob dies
auch möglich ist?
tarzanhb ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.07.2010, 11:04  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Dateien, die Klassen und Funktionen bereithalten, sollten diese nicht auch aufrufen. Eben aus genau dem von dir angesprochenen Problem

Kannst du die Funktion nicht einfach auch in deine Datei einbauen, bzw diese auslagern???


IMHO etwas dirty, aber mir fällt spontan folgendes ein:
PHP-Code:
$deineDatei file_get_contents(functions.php');
preg_match('
.., $functionToCall);
eval(
$functionToCall); 
ragtek ist offline  
Alt 20.07.2010, 12:12  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
tarzanhb befindet sich auf einem aufstrebenden Ast
Standard

Hi

Danke!
Die Idee war mir auch gekommen( mag man kaum glauben ).

Jetzt mal ne Frage dazu.
Das Pattern was ich habe,
PHP-Code:
preg_match('/function gesuchteFunktion(.*?){(.*?)}/ms',$string,$result); 
sucht mir nun mine Funktion raus.
Wie sage ich dem Pattern aber nun, dass falls im Rumpf der Funktion weitere {} Klammern stehen,
er diese ignoriert und dich richtige Klammer wählt, die den Rumpf der Funktion schließt?
tarzanhb ist offline  
Alt 20.07.2010, 18:03  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Das ist ja ganz übles rumgehacke, da würde ich wohl eher code-dublikation in kauf nehmen und die funktion in ne extra datei nochmal speichern wie zu versuchen mittels regex ne funktion rauszuparsen und dann via evil eval() auszuführen.

imho wären für das rausparsen regex eh das falsche, der tokenizer von php ist da eher geeignet, das wären aber wohl ein paar zeilen mehr.

Wie bei xhtml, musst du mit dem versuch php mit regex zu parsen ernsthafte konsequenz einplanen:

-> http://www.php.de/off-topic-diskussi...ex-parsen.html ((x)HTML lässt sich nicht mit Regex parsen)
robo47 ist offline  
Alt 20.07.2010, 18:25  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von tarzanhb Beitrag anzeigen
Hi

Danke!
Die Idee war mir auch gekommen( mag man kaum glauben ).

Jetzt mal ne Frage dazu.
Das Pattern was ich habe,
PHP-Code:
preg_match('/function gesuchteFunktion(.*?){(.*?)}/ms',$string,$result); 
sucht mir nun mine Funktion raus.
Wie sage ich dem Pattern aber nun, dass falls im Rumpf der Funktion weitere {} Klammern stehen,
er diese ignoriert und dich richtige Klammer wählt, die den Rumpf der Funktion schließt?
PHP-Code:
preg_match('/function gesuchteFunktion(.*?){(.*)}/ms',$string,$result); 
dein .*? arbeitet "ungreedy" du willst aber greedy ( gierig ) d.h. einfach .* .
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
Alt 20.07.2010, 20:22  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

robo47 hat absolut Recht. Soetwas ist auch nicht annähernd fortgeschritten.

[MOD: Thread verschoben]
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 21.07.2010, 09:45  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
tarzanhb befindet sich auf einem aufstrebenden Ast
Standard

Hmm
Okay, eigentlich ging es mir nur darum, vllt. einen Weg zu finden wie es möglich wäre.
@Destruction mit dem umstellen des greedy wäre es nicht getan.

Trotzdem Danke
tarzanhb ist offline  
Alt 21.07.2010, 13:38  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Es wurden dir doch schon drei Lösungswege aufgezeigt:
- Tokenizer
- RegExp
- Umstrukturierung

Zitat:
@Destruction mit dem umstellen des greedy wäre es nicht getan.
Formulier deine Vermutung doch mal aus, dann muss nicht ständig eine Nachfrage gestellt werden. Geht ja auch alles von deiner Zeit ab.
__________________
"Nuschel ich?" - "Was?"
Chriz 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
[Erledigt] Datei Upload Prüfung auf wav / mp3 mastertnt PHP Tipps 2009 4 15.02.2009 20:05
Wert in externer Datei speichern Abakay PHP Tipps 2008 6 04.12.2008 18:56
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
.gz Datei entpacken und mit dem Inhalt weiterarbeiten R4v3r PHP Tipps 2007 8 02.02.2007 14:49
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
variableninhalt einer externen datei ändern phpfortgeschrittener PHP Tipps 2006 7 25.01.2006 17:53
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
Größe einer EXTERNEN - Datei ermitteln PHP-Fortgeschrittene 14 22.04.2005 20:48
xfdf Datei mit PHP an eMail senden Problem: Leere Datei PHP Tipps 2004-2 1 07.12.2004 12:25
[Erledigt] datei editieren PHP Tipps 2004 1 10.09.2004 20:33
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php funktion aus anderer datei aufrufen, php funktion in anderer datei aufrufen, http://www.php.de/php-einsteiger/69869-erledigt-funktionsaufruf-aus-einer-externen-php-datei.html, php funktionsaufruf, php funktionsaufruf aus anderer datei, php function aus anderer datei aufrufen, php funktionen aus anderer datei aufrufen, php externe dateien aufrufen, php externe funktion, html php funktionsaufruf, php funktionsaufruf anderer datei, funktion aus anderer datei aufrufen php, php funktionsaufruf mit eval, php funktionen in externer datei, php funktionen aufrufen andere datei, php externe funktion aufrufen, php datei in funktion ausführen, php funktion aus anderer datei, php html funktionsaufruf, php funktion anderer datei aufrufen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:10 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