php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-06-2008, 13:29
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard Grundlagenstudium: Textmanipulationen mit PHP

Hallo zusammen.

Meinen neuesten Erkenntnissen gemäß möchte ich jetzt meine Textdateien umgestalten.

Istzustand:

<h1>1. Überschrift</h1>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>


Sollzustand:

<dl>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>

<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
<dt>Text portugiesisch</dt>
<dd> Deutsche Übersetzung</dd>
</dl>

Aufgabenstellung:

Der Code soll mit Aufruf über den Browser ausgeführt werden.
Es sollen alle Dateien im Ordner der Reihe nach bearbeitet werden.

Ablaufplan:

Stelle fest, welche Dateien im Ordner liegen.
Öffne erste Datei.
Suche die erste Leerzeile.
Füge ein <dl> ein.

Schleife bis Ende Datei:

Suche <div class="texth1">
Ersetze mit <dt>
Suche in der selben Zeile das </div>
Ersetze mit </dt>
Suche <div class="silber">
Ersetze mit <dd>
Suche in der selben Zeile das </div>
Ersetze mit </dd>
Ende Schleife

Füge ein </dl> in die letzte freie Zeile der Datei.
Wenn keine vorhanden, Leerzeile einfügen.

Datei speichern.
Nächste Datei.


Befehle:
resource opendir ( string $path [, resource $context ] )
string readdir ( resource $dir_handle )
resource fopen ( string $filename , string $mode )
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
fclose ( resource $handle )

Bevor ich mich dann im einzelen mit der konkreten Umsetzung beschäftige, möchte ich hier mal nachfragen, ob die Ablauflogik soweit in Ordnung ist, die Befehle vollständig sind und ob es eventuell sinnvollere Befehle gibt, die ich einsetzen könnte.

Gruß
Estrela
Mit Zitat antworten
  #2 (permalink)  
Alt 17-06-2008, 13:41
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ganz ehrlich:

Da es eine einmalige Aktion ist, Texteditor: Suchen & Ersetzen in allen Dateien, Fertig.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 17-06-2008, 13:45
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich würde statt str_replace() preg_replace() verwenden. Da kannst du die Anfangs- und Endtags gleichzeitig bearbeiten.
__________________
Gruss
H2O
Mit Zitat antworten
  #4 (permalink)  
Alt 17-06-2008, 13:50
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich würde statt str_replace() preg_replace() verwenden. Da kannst du die Anfangs- und Endtags gleichzeitig bearbeiten.
Ob das eine bedeutender Vorteil gegenüber der Stringfunktion ist, wage ich zu bezweifeln.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 17-06-2008, 13:51
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo TobiaZ.

Habe ich auch zuerst dran gedacht.

Dagegen sprechen aber aus meiner Sicht zwei Gründe.

1. Ich möchte ja php lernen, da nutze ich diese Gelegenheit, um Erfahrungen zu sammeln.

2. Das letzte </dl>, das bekomme ich mit Suchen und Ersetzen nicht rein.


@H2O
Danke für Deinen Hinweis, werde ich mir mal anschauen.

Gruß
Estrela
Mit Zitat antworten
  #6 (permalink)  
Alt 17-06-2008, 14:51
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
2. Das letzte </dl>, das bekomme ich mit Suchen und Ersetzen nicht rein.
Mittels regulären Ausdrücken, sollte das auch dein Texteditor können.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 17-06-2008, 15:16
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo TobiaZ.

Abgesehen davon, das mir kein passender regulärer Ausdruck einfällt, kann mein Texteditor nur Suchen und Ersetzen.
Weiterhin bliebe noch Punkt 1.

Gruß
Estrela
Mit Zitat antworten
  #8 (permalink)  
Alt 17-06-2008, 15:32
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Klar, zwingt dich ja keiner...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 17-06-2008, 15:38
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sehr konstruktiv und förderlich
Mit Zitat antworten
  #10 (permalink)  
Alt 17-06-2008, 15:45
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Für class="texth1" --> http://regexp-evaluator.de/evaluator...2e01/#ergebnis und für den Rest hast du den RegExp schnell angepasst
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 17-06-2008, 15:46
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

resource opendir ( string $path [, resource $context ] )
string readdir ( resource $dir_handle )
glob

resource fopen ( string $filename , string $mode )
file_get_contents

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
imho okay, ansonsten preg_replace

fclose ( resource $handle )
dann überflüssig.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #12 (permalink)  
Alt 17-06-2008, 16:03
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Estrela
... kann mein Texteditor nur Suchen und Ersetzen
Wie liebe ich doch zwischendurch den guten alten vi

REGEX:
PHP-Code:
$zeile preg_replace('|<div class="texth1">(.+)</div|U'
                        
'<dt>$1</dt>'
                        
preg_replace('|<div class="silber">(.*)</div>|U'
                                        
'<dd>$i</dd>'
                                        
$zeile
                        
)
        ); 
__________________
Gruss
H2O
Mit Zitat antworten
  #13 (permalink)  
Alt 17-06-2008, 16:50
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo jahlives.
Echt guter Verweis zur Behandlung und Herstellung von regulären Ausdrücken. Danke.

@ TobiaZ.

Ja danke. Deinen ersten Abschnitt versuche ich gerade umzusetzen.
Bis zum ersten echo funktioniert es.
Aber jetzt weiß ich nicht, ob ich erfolgreich die Datei mit Schreib- und Lesezugriff der Variablen $OffeneDatei zugewiesen habe.
Kommt nähmlich nur eine Warnmeldung:
Warning: fopen(icon) [function.fopen]: failed to open stream: No such file or directory in /home/
Mir brummt auch ein wenig der Schädel.
Ist das jetzt, bis auf´s letzte echo, soweit richtig, so das ich dann mit file_get_contents
weitermachen kann?

<?php
$Arbeitsordner = "../";
$Ordnerinhalt = opendir($Arbeitsordner);
while (($file = readdir($Ordnerinhalt)) !== false) {
//echo "$file"."<br>";
$OffeneDatei = fopen ($file, "r+");
echo $OffeneDatei;
}
?>

@H2O
Ja danke Dir, kann ich im nächsten Schritt sehr gut gebrauchen.

Gruß
Estrela
Mit Zitat antworten
  #14 (permalink)  
Alt 17-06-2008, 16:56
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Warning: fopen(icon) [function.fopen]: failed to open stream: No such file or directory in /home/
Der brummt mir auch, wenn ich sehe, dass du versuchst eine Datei zu öffnen, die nicht existiert.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #15 (permalink)  
Alt 17-06-2008, 17:44
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo.

Nochmal auf Deutsch:

Ich habe der Variablen $Arbeitsordner den Pfad zugewiesen.
Weiterhin der Variablen $Ordnerinhalt die Auflistung des Arbeitsordners.
Schleife:
Weil --> Variablenzuweisung = ist noch am lesen ungleich falsch
// Also Zeiger steht auf der ersten Datei, noch nicht am Ende
$OffeneDatei = die gerade gelesene Datei// fopen ($file,);
$Text = Einladen des Inhalts der offenen Datei
Testausgabe = Warning: fopen(31.php) [function.fopen]: failed to open stream: Permission denied in /home/
Ende Schleife

<?php
$Arbeitsordner = "test/php/";
$Ordnerinhalt = opendir($Arbeitsordner);
while (($file = readdir($Ordnerinhalt)) !== false) {
$OffeneDatei = fopen ("$file", "r+");
$Text = file_get_contents ("$OffeneDatei");
echo $Text;
}

?>

Wie ermögliche ich den Zugriff?
Dateiattribute stehen auf 777.

Gruß
Estrela

Geändert von Estrela (17-06-2008 um 19:26 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:58 Uhr.