php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.02.2007, 15:04  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard function-Funktionen strippen

Hey,
eins vornweg: mit Funktionen bezeichne ich im nachfolgenden Text nur die Deklarierung der vom Benutzer angelegten Funktionen, also z.B:

Code:
function Test() {
}
So und hier die Frage:

Ein Programm läuft folgendermaßen ab:

1) Es liest den Quellcode der Seite aus und speichert ihn in einem extra Ordner*
2) Es formatiert die gespeicherte Seite und includet sie
3) Über ob_get_contents wird der Inhalt in eine Variable gespeichert
4) Weiterer Inhalt wird ersetzt
5) die Variable wird über echo ausgegeben


Die Funktionen in dem Quelltext werden entfern. Sobald die Datei in dem Extra Ordner ist wird also keine einzige Funktion mehr zu finden sein.
Denn wenn noch eine Funktion übrig wäre, würde es einen Fehler geben, da sie dann zweimal deklariert wurde.



So funktioniert auch alles schön. Wenn aber in der Seite eine Datei includet wird, in welcher eine Funktion deklariert wird gibt es einen Fehler.

Weiß jemand was ich dagegen machen könnte? Gibt es einen anderen Weg als include("lala") durch den inhalt von "lala" zu ersetzen?

Hoffe ihr versteht das problem ein wenig
__________________
freesms, free hosting uvm. 4 free:

>> www.msxstudios.de
Madden ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.02.2007, 15:54  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du willst Performance gewinnen, in dem du include's und require's auflöst?
Das lohnt nicht würde ich sagen.
Zitat:
Wenn aber in der Seite eine Datei includet wird, in welcher eine Funktion deklariert wird gibt es einen Fehler.
Verstehe ich nicht, was meinst du?
Zergling-new ist offline   Mit Zitat antworten
Alt 06.02.2007, 16:09  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard

Habe den Prozess nun ein wenig gekürzt, die Funktionsweise ist aber noch die gleiche.

Hier nochmal etwas ausführlicher:

Seite.php
PHP-Code:
<?php 
include("programm.php"); // Unser Programm
include("mysql_connect.php");
?>


<?php echo "lalalalala"?>

programm.php
PHP-Code:
// Die Funktion parse sorgt dafür, dass 'function xxxx() { [..] }' entfernt wird
$seite parse(file_get_contents($_SERVER["PHP_SELF"]));

fwrite("ordner"$seite);
// Schließlich ausgeben
include("ordner/".$seite);  //Neu angelegte Datei includen, damit auch PHP Code ausgeführt wird.
die(); // Html Code nicht nochmals ausgeben 
EDIT: und bitte sagt jetzt nicht, dass z.B. fwrite falsch ist, das weiß ich selbst. aber so ist's vll am übersichtlichsten



So und wenn jetzt in der Datei "mysql_connect.php" eine Funktion deklariert wird, kann diese nicht gelöscht werden

Wie würdet ihr das am besten lösen?
__________________
freesms, free hosting uvm. 4 free:

>> www.msxstudios.de
Madden ist offline   Mit Zitat antworten
Alt 06.02.2007, 16:24  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
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

Wieso willst du denn in der mysql_connect.php überhaupt wieder ne funktion löschen? Ich versteh den ganzen Sinn hinter der Sache nicht. Willst du die mysql_connect.php über die programm.php includen oder in der Seite.php ??? anscheinend machst du grad beides was sich für mich nicht sinnvoll darstellt.
Und warum verwendest du in programm.php ein die(); ?? Dadurch wird alles andere gestoppt auch das was in der Seite.php steht also include(mysql_connect) und das echo lalala ...

Ich versteh den Sinn hinter dem ganzen Zeug nicht.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist gerade online   Mit Zitat antworten
Alt 06.02.2007, 16:44  
Benutzer
 
Registriert seit: 26.02.2005
Beiträge: 58
Madden
Standard

also das die() ergibt schon sinn.
die komplette seite wird ja vopn programm.php includet. ohne das die() würde also alles doppelt ausgegeben + includet werden
__________________
freesms, free hosting uvm. 4 free:

>> www.msxstudios.de
Madden ist offline   Mit Zitat antworten
Alt 06.02.2007, 16:50  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
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

Aber wofür includest du es überhaupt ein zweites mal??? Warum reicht es dir nicht einfach include(mysql_connect.php); und fertig? Warum muss es nochmal includet werden und dabei die Funktionen gelöscht werden???
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist gerade online   Mit Zitat antworten
Alt 06.02.2007, 16:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Also wenn du verhindern möchtest, dass eine Datei doppelt eingebunden wird, benutz entweder require_once oder include_once oder nach C-Art:

PHP-Code:
<?php
if (!defined('PROGRAMM_PHP')) {
  
define('PROGRAMM_PHP'true);
  
  
// programmcode
}
?>
Aber erklär doch mal den Sinn des ganzen.
Zergling-new ist offline   Mit Zitat antworten
Alt 06.02.2007, 23:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

wozu das ganze habe ich auch nicht nicht durchschaut. 2 hinweise:

- die () beendet den script-ablauf. du meinst return. das beendet ein include.
somit könntest du bspw. die funktionen an das ende des includes legen und vorher mit return aussteigen

- du kann die funktionen mit if (!function_exists(...)) { } umschließen.

ich würde mir eher n richtiges includemanagement schreiben oder funktionen und restlichen code voneinander trennen. aber wie gesagt, der sinn deines vorhabens erschliesst sich mir noch nicht.
nikosch ist offline   Mit Zitat antworten
Alt 08.02.2007, 00:15  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmmh wie wärs wenn du endlich mal auf die frage antwortest?
schön und gut was du so gepostet hast aber was ist das den nun?
anfang eines frameworks? templatesystems etc? oder was soll das werden?
wozu dient das überhaupt?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Antwort


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] sql-Code an function übergeben und array mit Ergebniss zurück bekommen Felix PHP Tipps 2008 6 30.07.2008 16:59
Ausführing von functions in function fatsurfer PHP Tipps 2008 4 12.06.2008 13:21
GD-Spezialisten gesucht....wer kann helfen? rezix PHP Tipps 2008 12 26.02.2008 17:55
Call to a member function on a non-object Riks PHP Tipps 2007 20 10.02.2007 22:59
Function und Variablen Quagga PHP Tipps 2006 2 11.08.2006 18:23
function() problem Marian PHP Tipps 2006 20 05.06.2006 21:47
Globale Variabeln in Funktionen finerip PHP Tipps 2007 3 28.11.2005 16:00
function PHP Tipps 2007 46 08.11.2005 23:00
function in einer function - help! PHP Tipps 2005-2 4 25.10.2005 00:20
[Erledigt] Datenbank nicht erreichbar PHP Tipps 2005-2 27 19.08.2005 12:20
[Erledigt] OOP: function in eine andere function einbinden PHP Tipps 2005 10 20.03.2005 16:13
functionwiederholung in function PHP Tipps 2004 1 26.10.2004 15:09
Funktionen auslagern und auf variablen zugreifen Crypi PHP Tipps 2004 3 14.10.2004 13:43
[Erledigt] Call to undefined function highlight() PHP Tipps 2004 1 07.09.2004 09:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
strippen für anfänger, sql übergabe strippen, strippen php, php ob_get_contents auf define variablen zugreifen, php in funktion include ihalt function

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 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.