Community

9dots.de Webdesign Board

 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 

 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 


[PHP] Snippet: Textdatei zeilenweise auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 16.07.2007, 20:33    Titel: [PHP] Snippet: Textdatei zeilenweise auslesen Antworten mit Zitat
Hab gerade mal Langeweile und da fiel mir ein, dass hier glaub ich noch kein Tutorial existiert, was zumindest ein wenig die Benutzung von Dateien als Speicherort für Daten benutzt. Ich arbeite eigentlich auch nur mit mySQL aber für die Sache, die ich hier benutzt habe war mir mySQL zu umständlich.

Nunja was war mein Problem: Mich nervte es, dass ich auf meinem Apache hier soviele Projekte gleichzeitig hatte und wenn ich die aufrufen musste immer die entsprechende URL raussuchen/eingeben musste. Also hab ich mir nen kleines Script geschrieben. Ich poste es und erkläre danach ein bisschen:

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>2formmedia Project Switcher</title>

<script language="javascript" type="text/javascript">

function sendlink(){
var wahl=window.document.links.projects.selectedIndex;
   if(wahl != "0"){
      var link=window.document.links.projects.options[wahl].value;
      window.document.location.href=link;
   } else{
      alert("Bitte wählen Sie ein Projekt aus!");
   }
}

</script>

<style type="text/css">
option, select{
color: #A82F00;
font-weight: bold;
}
</style>

</head>

<body bgcolor="#FFFFFF">

<table border="0" align="center" cellpadding="1" cellspacing="1">
<tr><td height="100%" valign="middle">

<table border="0" align="center">
<tr>
<td height="185"></td>
</tr>
<tr><td height="100%"><img src="switcher-logo.jpg" width="222" height="55" alt="" /></td></tr>
<tr>
<td align="center">
<form method="post" name="links" action="index.php">
<select name="projects" onchange="sendlink()">
<option value="0" selected="selected">-- Projekt w&auml;hlen --</option>
<?
$fp = @fopen("projects.txt", "r") or die ("Kann Projekt-Datensatz nicht lesen!");

while($line = fgets($fp, 1024)){

$data = explode("<=>",$line);

echo "<option value=\"".$data[1]."\">".$data[0]."</option>\n";

}

fclose($fp);

?>
</select>
</form>
</table>

</td></tr>
</table>

</body>
</html>



So, dass ist das ganze Script. Das kleine Script ist also in ein ganz normalen HTML-Aufbau eingebunden. Dass Javascript oben ist hier aus dem Forum (http://www.forum.9dots.de/viewtopic.php?t=1687) und bewirkt, dass bei Änderung der Dropdown-Liste im PHP-Script sofort auf die angegebene Datei weitergeleitet wird.

So nun die paar Zeilen PHP-Code:
[url]$fp = @fopen("projects.txt", "r") or die ("Kann Projekt-Datensatz nicht lesen!");[/url] Liest die Textdatei projects.txt ein im Nur-Lesen-Modus.

Code:

while($line = fgets($fp, 1024)){

$data = explode("<=>",$line);

echo "<option value=\"".$data[1]."\">".$data[0]."</option>\n";

}

Die while-Schleife liest in der Datei ($fp) solange jeweils eine Zeile aus, bis das Ende der Datei erreicht ist (siehe www.php.net/fgets). In der Variable $line ist jeweils der Inhalt dieser Zeile gespeichert. Mit $data = explode(...) zerlegt man nun die jeweilige Zeile in ein Array mit 2 Elementen. Das Trennzeichen ist hierbei das "<=>".
Das heißt, dass wenn in der txt-Datei eine Zeile folgendermaßen aussehen würde:
Code:
Ich bin<=>total toll

würde man im neuen array $data einmal das Element Nummer 0 ( Array-Elemente werden durchnummeriert, beginnend bei Null ) mit dem Wert "Ich bin" und einmal das Element 1 mit dem Wert "total toll haben".

Der Echo-Befehl gibt nun einfach nur noch die beiden Array-Elemente innerhalb einer option-Liste aus.
Um unser Beispiel aufzugreifen würde die eine Zeile jetzt folgendermaßen nach dem Parsen aussehen:

Code:
<option value="total toll">Ich bin</option>


Das wars auch eigentlich schon. Wie gesagt bewirkt dass Javascript, dass bei Änderung der Auswahlliste auch direkt zum value-Wert der Option-Auswahl gesprungen wird. Nun würde uns unser Beispiel mit dem "Ich bin total toll"
natürlich nichts ausser einem Fehler einbringen, also müssen wir unsere projects.txt Datei mit gescheiten Werten füllen.
Beispiel:
Code:

9dots Forum<=>http://forum.9dots.de
meine neue Seite<=>/neuepage/index.php
meine alte Seite<=>/altepage/



So jetzt hab ich genug geschrieben zu diesen paar Zeilen PHP-Code. Ich denke dass Prinzip ist klar und der Zweck, den das Dingen (zumindest bei mir leistet ) auch. Ist ja auch nich so schwer, oder? Smilie

Zu guter letzt noch nen Screen wie es aussehen kann (klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Board Software by phpBB © 2001, 2005 phpBB Group. Impressum
Dominik Wuttke - Moritz Münchmeyer - Joachim Nagel GbR.
AGB