Hey,
gibt es eine Möglichkeit, dass ich 1 PHP Script in jeder Datei in meinen Ordner ausführe ohne diese in diese einzubinden?
Grüße,
Stef
Hey,
gibt es eine Möglichkeit, dass ich 1 PHP Script in jeder Datei in meinen Ordner ausführe ohne diese in diese einzubinden?
Grüße,
Stef
kann man sowas nicht mit der .htaccess regeln ?
Nee ander idee hätte ich nicht außer mit include , aber das wolltest du ja nicht
Das habe ich nicht ganz verstanden?
Du hast ein Script, nennen wir es mal script.php
Dieses willst Du in anderen Dateien ausführen, ohne es einzubinden?
Warum sollte das so sein?!
ohne diese in diese einzubinden?
Ich hoffe nicht
Du könntest aber register_shutdown_function nutzen, um es am ende ausführen zu lassen.
Oder auto_append_file (hab ich selbst noch nie genutzt - frag mich nicht :D)
Oder Du hängst Dich in nen autoloader mit rein.
Siehe: http://php.net/manual/de/language.oop5.autoload.php
Wird eine Klasse geladen, dann führst Du ein require_once aus, welches ja nur ein Mal ausführt.
Ist aber lame
Oder auf einer Klasse in den __construct. Was auch lame ist
Frage ist halt, was soll passieren?
Und sieht man dann noch durch? Wird da evtl etwas zu sehr verschleiert?
Hey,
Ich habe sehr viele PHP-Dateien in denen ich eine PHP Datei welche ich für eine Abfrage brauche ausführen muss.
Da es viel Zeit kostet in jede Datei das händisch einzubinden suche ich nach einer Möglichkeit das automatisch zu machen.
Das Script soll lediglich die Aktivität des Users (JS Script) sowie ein Status überprüfen.
Okay. Ich werde mir morgen mal die Funktionen näher anschauen und mich nochmal melden.
Grüße,
Stef
Mich verwirrt jetzt der JS Einwurf... Was hat JS nun damit zu tun?
Leider machen die ganzen Vorschläge bisher nur wenig Sinn, denn für Autoloading musst Du nicht nur etwas in OOP denken, sondern auch in alle Dateien zumindest den Aufruf der Klasse unterbringen. Wo das jetzt ein Vorteil sein soll, nicht stattdessen gleich include/require einzutragen, erschließt sich mir nicht.
Das gleiche gilt für register_shutdown_function(). Auch hier musst Du das in der Datei, wo es greifen soll eintragen.
Lediglich auto_append_file oder auto_prepend_file könnte zum Ziel führen, da das über die .ini Direktive eingetragen wird.
Da ich das aber bisher auch nie verwendet habe, kann ich nicht sagen, ob das wirklich ausreicht.
Alles in allem solltest Du die Grundlage nochmal überdenken.
Vielleicht habe ich das Problem auch nicht richtig verstanden, aber wenn es tatsächlich darum geht, Script A in vielfachen anderen Scripten automatisch auszuführen, ohne es einzubinden, bleibt das höchst fragwürdig!
ZitatDa es viel Zeit kostet in jede Datei das händisch einzubinden suche ich nach einer Möglichkeit das automatisch zu machen.
Sofern sich die Position allgemein gültig angeben lässt, z. B. ganz am Anfang, vor </head> oder </body>, evtl. ganz anders: Mit dem Editor und Ersetzen über mehrere Dateien hinein editieren? (natürlich nur das Einbinden, nicht da ganze Skript)
Also werden Websites (also einzelne Seiten) per PHP erstellt
und dort soll jetzt überall per PHP zB ein JS code eingebunden werden?
Like:
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title ?></title>
<?php /* HIER SOLL IN JEDE DATEI EIN INCLUDE|REQUIRE ? */ ?>
</head>
<body>
...
</body>
</html>
Da sowas wieder vorkommen kann|wird, solltest Du Dir ein "System" ausdenken.
Order wie Sempervivum sagte: suchen und ersetzen mit Editor.
Hey,
erstmal vielen Dank für eure Nachrichten.
Zitat
Mich verwirrt jetzt der JS Einwurf... Was hat JS nun damit zu tun?
Arne Drews : Es soll auch eine JS Datei eingebunden werden. Da hast du vollkommen recht.
Sempervivum : Danke für deinen Vorschlag. Ich werde mal schauen ob mein Editor es auch kann. Theoretisch ist dies ja das selbe wie in jede Datei es reinzukopieren.
cottton : Ja genau. Richtig. Ich werde mir mal Gedanken darüber machen und aufjedenfall ein Script programmieren welches dies für mich erledigt.
Dann bleibt mir wohl vorerst kein anderer Weg als es überall händisch einzubinden.
Grüße,
Stef
Wenn das so ist, liegt Sempervivum richtig: Es müsste ein erkennbares Muster an der Stelle existieren, wo es hin soll.
Kannst Du Beispiele nennen/zeigen und eine Aussage treffen, dass die Stelle, an die das Script soll in jeder Datei gleich/ähnlich aussieht?
Hey,
Okay.
In meinen aktuellen Scripten ist kein erkennbares Muster vorhanden.
Verstehe dich nicht so richtig.
Ich würde einfach alle Dateien einscannen und in ein Array speichern. Danach gehe ich durch das Array, öffne die Datei, suche dann nach dem Muster, ersetzte dies dann mit dem Code und speichere den Inhalt wieder so ab.
Dauert zwar etwas länger wenn es viele Dateien sind aber ist voll automatisch und schneller als das händische einfügen finde ich.
Dazu braucht man dann aber aufjedenfall das Muster in jeder Datei welches man ersetzten muss.
Grüße,
Stef
So lange dauert das auch nicht, es sei denn, Du hast eine Anzahl vierstelliger Dateien im mittleren Bereich
Aber der Ablauf wäre prinzipiell möglich. Wenn Du nicht rekursiv laufen musst, reicht glob() in Verbindung mit file_get_contents() und file_put_contents(). Sollte das Muster nicht ganz gleich sein, gibt es noch preg_replace().
Sollte das alles zu rechenintensiv sein, weil Deine Dateien bspw. so groß sind, würde ich einfach die per glob() gefunenen Dateien mit array_chunk() aufteilen in kleinere Blöcke und diese mit Unterbrechungen verarbeiten.
Naja, der <head> tag ist ja da, denk ich.
Also einfach per str_replace() reingehauen
<?php
$fileContentArray = [
'<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>',
];
$contentToAdd = '
<script>
var i = 1;
</script>
';
foreach ($fileContentArray as &$content) {
$content = str_replace('<head>', "<head>\r\n{$contentToAdd}", $content);
}
echo var_export($fileContentArray, true) . PHP_EOL;
Alles anzeigen
array (
0 => '<!DOCTYPE html>
<html>
<head>
<script>
var i = 1;
</script>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
</body>
</html>',
)
Alles anzeigen
Test: http://sandbox.onlinephpfuncti…40e5d2b4c776aed4c107b2623
EDIT: vorher aber BACKUP von allen Files machen!
Und evtl nen check einbauen, ob der content ("<head>\r\n{$contentToAdd}") schon existiert.
Ja, ohne zu überlegen kann man das so machen.
Was aber, wenn Du aufgrund einer Abhängigkeit das Script weiter unten im <head> haben musst?!
Das kann er sich aber nur selbst beantworten.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.