• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bestimmte Inhalte aus einer Textdatei auslesen und ausgeben

ReZnoRRonZer

Neues Mitglied
Ich will eine Funktion die tausendfach im Netz benutzt wird, von daher hoffe ich auf ein fertiges Script, konnte aber in Google nichts finden

Was ich möchte: Ich möchte eine Datei haben die alle informationen erhält, sodass ich nur diese eine Datei aktualisieren muss und auf allen Webseiten wird der aktualisierte Inhalt angezeigt.

Diese Datei soll "informationen.txt" heissen. In dieser Datei sollen die einzelnen Werte in Gruppen stehen:

Gruppe Preis
Preis Anbieter 1
Preis Anbieter 2
Preis Anbieter 3

Gruppe Nutzungsrecht
Nutzungsrecht-Anbieter 1
Nutzungsrecht-Anbieter 2
Nutzungsrecht-Anbieter 3


Das ganze möchte ich in der jeweiligen Webseite einfach im Sinne von "Nutzungsrecht-Anbieter 1" anzeigen lassen.


Ich würde mich sehr über einen Link oder den Code eines entsprechenden Scripts freuen!
 
Ich verstehe deine Logik dahinter nicht, also bitte etwas genauer erklären.
In der Datei stehen Preise, soweit ok, wer soll nun was sehen?

Wenn immer die ganze Textdatei ausgegeben werden soll, ist die Funktion require_once() oder include_once()
 
Wenn Du den Inhalt einer Datei 1:1 ausgeben willst, reicht

PHP:
echo file_get_contents("informationen.txt");

oder

PHP:
include("informationen.txt");

Wenn Du die darin stehenden Informationen verarbeiten willst, dann müsstest Du sie einlesen und entsprechend deinen Wünschen verarbeiten. Z.B. könntest Du die Datei im INI-Format aufbauen und dann mittels parse_ini_file() auslesen. Beispiele wie Du die darüber ermittelten Werte verarbeiten kannst, findest Du im verlinkten Manual.

Wenn es das nicht ist was Du suchst, formuliere genauer was Du haben willst oder überdenke mal die Art und Weise wie Du die Inhalte in der Textdatei hinterlegen willst. Wie gesagt wäre das INI-Format evtl. passender, vlt. aber auch nicht passend für deinen Fall - je nachdem wie die Ausgabe im Web dann aussehen soll.
 
Ok ich hoffe ich schaffe es mich verständlicher auszudrücken

Ich möchte in einer Webseite an der Stelle wo der Wert ausgegeben werden soll "firma1-preis" im quellcode eingeben.
Beim aufrufen dieser Seite soll dann aus einer externen Datei der Wert von "firma1-preis" ausgelesen und für den besucher ausgegeben werden

In der externen Datei sollen alle Werte stehen die ich auf den einzelnen webseiten ausgeben möchte, also auch "firma2-preis", "firma3-preis", und z.B. auch "firma5-sonderangebot". Erreichen will ich damit das ich über das editieren einer einzelnen Datei alle Webseiten auf dem aktuellen Stand halten kann.
 
Jop, würde ich wie gesagt über parse_ini_file() machen. Du solltest deine Datei nach INI-Schema aufbauen, also z.B. für den Platzhalter firma1-preis den Eintrag

Code:
firma1-preis = 3,00

Die Datei liest Du auf jeder Seite komplett mit parse_ini_file() ein. Dadurch hast Du ein Array, welches Du nun verwenden kannst. Um den Platzhalter im Text zu ersetzen, sicherst Du den Quellcode in einer Variable, z.B.

PHP:
$text = "<p>firma1-preis</p>";

und ersetzt dann in der Variable die Platzhalter mit den Werten aus der INI-Datei, z.B. innerhalb einer Schleife in der Du durch das Array der INI-Datei gehst.
 
Ich verstehe irgendwie nur Bahnhof. Die Variable ist $text oder "<p>firma1-preis</p>" ?

So einlesen? : parse_ini_file('dateiname.ini') ??

Gibts für sowas denn kein fertiges Script wo man nur die Werte und Namen austauschen muss?
 
Da eine bestimmte Logik hinter deinem Wunsch steckt nein.
parse_ini_file gibt dir die Logik vor, nach der du deine Textdatei aufbauen msst.

Sinngemäss (ohne getestet zu haben):

Textdatei aufbau (anbieter.ini)
Code:
[Anbieter_1] 
Preis1 = 1 
Preis2 = 5 
Preis3 = 17

[Anbieter_2] 
Preis1 = 12 
Preis2 = 8 
Preis3 = 33

Du fragst nun in deinem Formular ab, welcher Anbieter gelistet werden soll. Sagen wir, dein Anbieter_1 liegt in der Variablen $_POST['anbieter']


PHP:
<?PHP
// kann dei Werte Anbieter_1 und Anbieter_2 annehmen
$anbieter = $_POST['anbieter'];

$preis_array = parse_ini_file("anbieter.ini", TRUE); 
print_r($preis_array[$anbieter]);
 
Super, dass wir uns erst für dich Gedanken machen, Du aber dann doch schon eine Vorlage für die Realisierung deines Wunsches hast ...

Da bei dir der komplette Inhalt ausgegeben wird, vermute ich einfach mal, dass Du die eingebundene Datei (im Beispiel unter dem Link variablen.php genannt) nicht richtig aufgebaut hast. Solange uns Du die nicht zeigst, können wir nur raten was falsch läuft.
 
Die vorlage habe ich später gefunden sonst hätte ich die natürlich gleich angegeben.

Ich poste jetzt mal den kompletten Code den ich habe:

Datei _update.php
Code:
<?php
$neupreis = '19';
$neulaufzeit = '3 Monate';
?>

datei index.php
Code:
<?php
include("http://domain.de/_update.php");
echo $neupreis;
?>

Es kommt kein php error und an der stelle wo $neupreis ausgegeben werden sollte steht gar nichts.
 
Bei den meisten Hosting mit PHP ist es nicht zulässig eine PHP-Datei in include() per http zu öffnen. Also wäre

PHP:
include("_update.php");

die korrekte Schreibweise dieser Zeile, wobei die Datei _update.php im selben Verzeichnis liegen muss wie die Datei die die include()-Funktion enthält.

Wenn Du die Inhalte wirklich per HTTP von einem externen Server laden willst, dann musst Du entweder die Sicherheitseinstellungen von PHP hierzu anpassen (Stichwort allow_url_fopen) oder eine andere Funktion (fopen, file_get_contents, eval ...) verwenden um die Datei runterzuladen und darin enthaltenen PHP-Code auszuführen.
 
Oh mann was bin ich froh. Endlich funzt es. Ich danke vielmals das du dich meinem Problem angenommen hast!

Wenn ich nun mehrere Werte auf einer Webseite aus der _update.php übernehmen will, wird das ganze dann zu rechenintensiv weil ich jedes mal den include befehl und den echo befehl ausführe oder wird das erst ab gigantischen operationsmengen kritisch?


Was ist eigentlich der Unterschied zwischen
Code:
include("_update.php"); und include('_update.php');
 
Zuletzt bearbeitet:
Zurück
Oben