Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Sourcecode incl. Code aus includes ausgeben?

Frage Entwicklung PHP

Mitglied: mfromh

mfromh (Level 1) - Jetzt verbinden

28.06.2010, aktualisiert 01.07.2010, 5677 Aufrufe, 7 Kommentare

include()- / require()-Statements durch deren Code ersetzen

Hallo Forum,

kann ich mir PHP-Code so anzeigen lassen, dass statt include() oder require() der Sourcecode angezeigt wird, der an dieser Stelle inkludiert wird? M.a.W. möchte ich die vom Precompiler zusammengesetzte Datei ausgeben, bevor sie durch den Compiler interpretiert wird.

Kennt jemand von Euch einen Weg?

Danke im voraus.

--
BFN
MFromH
Mitglied: maretz
28.06.2010 um 14:22 Uhr
Moin,

das wird so nicht gehen - da PHP ne Script-Sprache ist die nicht durch nen (Pre-)Compiler sondern nur durch einen Interpreter läuft...

Da wäre mir höchstens der manuelle Weg bekannt... aber ganz ehrlich: Alles andere wäre auch Sinnfrei. Denn du hast ja immer nen paar (unsichtbare) Includes - nämlich deine PHP.ini die ausgewertet wird usw. (sonst wüsste dein Script ja nicht worauf es basiert). Und dann kommt da noch der Teil vom Webserver zu der das ganze PHP erstmal lädt (ohne das wüsste dein Webserver ja nicht was er z.B. mit dem Befehl "phpinfo();" anfangen soll...)
Bitte warten ..
Mitglied: dog
28.06.2010 um 14:28 Uhr
readfile()

Nein, so etwas gibt es nicht.
Das tiefste an das man aus PHP selbst rankommt ist __halt_compiler()

Vielleicht reicht dir aber schon ein Xdebug oder APD und das Setzen von Breakpoints und Überwachen mit gdb?

Oder inclued http://www.php.net/manual/de/intro.inclued.php ?
Bitte warten ..
Mitglied: mfromh
28.06.2010 um 16:32 Uhr
Danke für Eure Antworten.

Mich wundert eigentlich, dass mein Wunsch so exotisch ist, denn die Fragestellung, an welcher Stelle welche Variable / Function definiert bzw. verändert wird, ist ja bei einem PHP mit einigen incudes() doch gar nicht mal so leicht zu beantworten. Und letztlich kann ja auch ein entsprechendes Utility nicht sooo schwer zu coden sein ...

--
BFN
Michael
Bitte warten ..
Mitglied: Arano
29.06.2010 um 00:22 Uhr
Nabend

Entsprechende Funktionen gibt es doch:
Damit sollte es möglich sein es in Erfahrung zu bringen

~Arano


EDIT:
Ähm ja.... hätte richtig lesen sollen, da helfen die ja auch nicht... sorry !
Bitte warten ..
Mitglied: dog
29.06.2010 um 00:44 Uhr
Wie gesagt, für sowas setzt man Breakpoints und überwacht die Ausführung mit einem Debugger
Bitte warten ..
Mitglied: maretz
30.06.2010 um 00:02 Uhr
Moin,

naja, die frage ist: Warum sollte man das tun? Was bringt es mir das ich z.B. beim Include ITX.php dann erstmal zig Zeilen Code rausgeballert bekomme die mich gar nicht intressieren?

Was intressiert dich denn beim Debuggen deines Codes? Normal ja nur DEINE Variablen und der Zustand DEINES Programmes. Und nicht alles was du so ggf. inkludiert hast. Und den Zustand deines Programmes kannst du dir ja relativ simpel anzeigen lassen...

Nur mal zum Verständnis: Nehmen wir an du würdest ein Programm bauen welches den Code an der Stelle komplett einbindet.

In deinem Code steht
include itx.php
-> wird ersetzt durch den Code der in der itx.php steht. Soweit so gut.
Leider findest du in der itx.php dann sowas wie
require class.db.inc
require localFunctions.inc
require sonderfunktion.php

ok - also rein mit dem ganzen kram.
In der sonderfunktion.php findest du aber wieder ein
require class.db.inc
-> da man hier die DB-Funktionen in einer Klasse ausgelagert hat (nur mal angenommen!).

Na - merkst du wie lang der Code jetzt werden würde (denn die class.db.inc könnte ja ggf. 1000ende Zeilen enthalten - du willst aber in der sonderfunktionen.php nur ganz bestimmte funktionen davon nutzen!). Das wäre schonmal kontraproduktiv -> du hast keine Chance mehr den Code zu lesen...

Noch schlimmer wird es wenn du im Bereich Objektorientierung bist. Hier hast du z.B. eine Klasse "Auto" (das übliche halt). Du hast jetzt ein Programm welches dir die Anzahl der Türen zurückgibt - enthält logischerweise ein "include auto.inc". Ein anderer Programmteil gibt dir zurück wieviele Reifen das Auto hat - somit enthält auch der Teil ein "include auto.inc". Innerhalb der Auto.inc hättest du aber z.B. noch eine DB-Funktion - also wird hier schonmal die "db.class.inc" immer inkludiert... Du hättest also ein relativ simples Programm in kurzer Zeit extrem aufgepustet wenn du dir statt des include immer den Programm-Text reinlädst. Und ein Debuggen wäre nicht mehr möglich -> du hättest ja immer den kompletten Text statt des Includes. Aber was dein Programmteil "Anzahl der Türen" mit dem Programmcode zur Rückgabe der Reifenanzahl soll kannst du vermutlich nicht sagen - trotzdem würde der auch in dem Programmteil stehen und eher verwirren...

Also -> hat nen guten Grund das man das include so belässt wie es ist... ;)
Bitte warten ..
Mitglied: mfromh
30.06.2010 um 06:50 Uhr
OK, Ihr habt mich überzeugt

Danke.

--
BFN
Michael
Bitte warten ..
Ähnliche Inhalte
PHP
Mit PHP eine Telnet abfrage machen und ausgeben
Frage von helmuthelmut2000PHP1 Kommentar

Hallo, Ich möchte folgendes machen und hätte da etwas Hilfe gebraucht. Ich habe an meiner Heizung einen Optolink Adapter ...

PHP
PHP include und per form ein formular einfügen
Frage von miichiii9PHP1 Kommentar

Hallo miteinander Ich habe ein kleines Problem Meine Idee ist ein kleines Forum selber zu erstellen mittels PHP und ...

PHP
PFSense 2.2.3 Firewall, Captive Portal php include externen Server
Frage von cafepostPHP13 Kommentare

Hallo, ich möchte bei eine PFSense 2.2.3 Firewall mit dem integrierten Captive Portal eine selbsterstellte „Login php Datei“ (Portal ...

Microsoft Office
Include Picture bei Word 2010
gelöst Frage von Fexco1Microsoft Office1 Kommentar

Morgen Administrator-Gemeinde! Ich stehe vor einem Problem was mir keine Ruhe lässt. Gegeben ist ein Word 2010 auf einem ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...