kleines php Script 2 - um HTML aus Ordner auszulesen..
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bedingung
code
datei
datenbank
design
dokument
ende
endung
ersetzen
erweitern
file
ordner
punkt
same
sinn
stelle
system
url
verzeichnis
zahl
-
Hi!
Ich habe schon einen thread und hätte indem auch weiter geschreiben, wenn ich
EDIT / BEARBEITEN finden würde, aber ich finde es nirgendswo und Doppelpost geht
ja nicht!
Ich vermute das das VIEL zu gross verstanden wurde...Ich habe etwas ähnliches gefunden und
kriege es nicht gebacken umzuändern.
Ich brauch einen PHP-Code, der aus einem bestimmten Ordner NUR die .html-Dokumente
holt und dann nebeneinander auf der einen Seite auflistet!
Die .html-Dokumente sind sozusagen einzelne "News", und werden mit einer Zahl benannt
(z.B. 1.html // 2.html // 3.html // ...usw.) und die größe Zahl soll als Erstes gezeigt werden...
also chronologisch rückwärts (Ich hoffe das ist verständlich?).
Mit freundlichen Grüssen
same1 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
PHP.NET ist glaube ich dein Freund bei dieser Aufgabe
siehe http://de3.php.net/manual/de/function.readdir.php
Dort findest du unter anderem folgendes:
<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file\n"; } } closedir($handle); } ?>
Dann passt du halt noch die if Bedingung an, dass nur noch html Dateien ausgegeben werden und gut ist.
Grüßle
Edit: URL Tags ergänzt
Beitrag zuletzt geändert: 4.5.2009 17:51:55 von scout -
Also ich stelle mal den Sinn ein wenig in Frage. Mit einer einer Datenbank und einem gescheiten Newsscript bist Du besser bedient, als mit einem solch umständlichen Konstruckt. Denn was machst Du wenn sich das Design der Seite ändert? Alle HTML überarbeiten? Das kann je nach Menge der News mit unter recht lange dauern.
Falls Du keine Datenbank hast, geht das ganze aber auch noch via XML, wie genau kann ich Dir nicht sagen, da ich selten XML für ein CMS verwende. -
strange schrieb:
Also ich stelle mal den Sinn ein wenig in Frage. Mit einer einer Datenbank [...] solch umständlichen Konstruckt. Denn was machst Du wenn sich das Design der Seite ändert? Alle HTML überarbeiten? Das kann je nach Menge der News mit unter recht lange dauern.
Naja, ich selbst (habe keinen Plan von PHP!) und empfinde das einfacher als mit diesen Datenbanken etc.!
Und das Layout bleibt immer das gleiche, vllt. ändere ich die Farben aber das kann man ja mit CSS händeln.
nikic schrieb: Die if-Bedingung könntest du zum Beipsiel erweitern durch:
&& preg_match('[0-9]+.html$', $file)
Wo kommt das denn dann genau hin, muss ich dieses "preg_match" mit der
ersetzen?if ($file != "." && $file != "..") {
Und wo kommt das Datei-Endung hin? So:
if ($file != "." && $file != ".html") {
Mit freundlichen Grüssen
same1 -
$verzeichnis = "./pfad/zu/html/dateien/"; $dateityp = "html"; while($file = readdir($verzeichnis)){ if(substr($file,strlen($dateityp)+1) == ".".$dateityp){ echo "Noch eine HTML-Datei: ".$file."<br />"; } }
Beitrag zuletzt geändert: 4.5.2009 18:09:05 von trueweb -
same-one schrieb:
nikic schrieb: Die if-Bedingung könntest du zum Beipsiel erweitern durch:
&& preg_match('[0-9]+.html$', $file)
Wo kommt das denn dann genau hin, muss ich dieses "preg_match" mit der
ersetzen?if ($file != "." && $file != "..") {
Und wo kommt das Datei-Endung hin? So:
if ($file != "." && $file != ".html") {
Mit freundlichen Grüssen
same1
Nein, das kannste einfach ans Ende der if-Abfrage einfügen:
<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && preg_match('[0-9]+\.html$', $file)) { echo "$file\n"; } } closedir($handle); } ?>
Das preg_match prüft eigentlich nur, ob am Ende des Strings ($) ein .html steht und davor eine Zahl ([0-9]+).
Beitrag zuletzt geändert: 4.5.2009 18:34:59 von nikic -
Schau Dir eingach mal ein fertiges CMS an, man muss ja nicht immer das Rad neu erfinden. Es gibt für fast jeden Anwender das richtige CMS! Ok, man braucht ein wenig Einarbeitungszeit, aber es ist einfacher sich auf ein bestehendes System einzuschießen, statt umständlich selbst was zu basteln.
Wenn Du Dich schon ein wenig mit PHP auskennst empfehle ich Dir Redaxo, damit hast Du die volle Kontrolle über das CMS und kannst es beliebig erweitern. Nachteil, es sind zwingend PHP-Kenntnisse erforderlich da man Module und PlugIns selbst zusammen stellen muss. Es gibt zwar schon fertige Module, die sind aber eher als Beispielmaterial zu sehen, aber für den Anfang reichen sie.
Großer Vorteil des Systems, die einzelnen Artikel werden nicht dynamisch aus einer Datenbank gelesen, sondern werden gecached und sind somit selbst bei einem Datenbankproblen zu lesen. Die Seiten werden aktualisiert, sobald sich der Inhalt ändert und nicht wie bei den meisten Systemen erst nach einer bestimmten Zeit.
Wie auch immer, eine Datenbankbasierte Lösung ist auf Jedenfall besser. Wenn Du das unbedingt selbst machen willst solltest Du Dir mal das QNET PHP Tutorial angucken. -
nikic schrieb:
<?php if ($handle = opendir('.')) {
Und anstatt dem Punkt in opendir('PUNKT') schreibe ich den Ordner-Namen?
same1 -
same-one schrieb:
nikic schrieb:
<?php if ($handle = opendir('.')) {
Und anstatt dem Punkt in opendir('PUNKT') schreibe ich den Ordner-Namen?
same1
genau zum Bsp. '/var/www/testseite'
Grüßle -
scout schrieb:
genau zum Bsp. '/var/www/testseite'
Grüßle
ok, aber es will nicht funktionieren:
http://same-one.lima-city.de/blog/index.php
mit freundlichen grüßen
same1 -
Da fehlen die Begrenzer
if ($file != "." && $file != ".." && preg_match('[0-9]+\.html$', $file)) {
richtig wäre:
if ($file != "." && $file != ".." && preg_match('/[0-9]+\.html$/i', $file)) {
Grüßle
Beitrag zuletzt geändert: 6.5.2009 11:25:23 von scout -
machen wir einen deal?
Ich gebe dir ein newsscript was du dann, wenn du PHP kannst beliebig erweitern kannst und du hoerst auf MySQL zu misachten
Melde dich einfach, wenn du interesse hast.
Gruss
Daniel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage