Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 16 File System
  gp 16.1 File
  gp 16.2 File_Find
  gp 16.3 File_SearchReplace


Rheinwerk Computing

16.3 File_SearchReplace  toptop


Besprochene Version: 1.0.1 Lizenz: BSD
Klassendatei(en): File/SearchReplace.php

File_SearchReplace gibt Ihnen, wie der Name schon vermuten lässt, die Möglichkeit, Dateien zu durchsuchen und bestimmte Wörter bzw. Suchmuster, die dort auftauchen, durch andere zu ersetzen. Zwar gestaltet sich die Nutzung auch hier recht einfach, aber eine kleine Einschränkung gibt es schon. Und zwar müssen Sie dem Paket die Namen der Dateien mitteilen, die durchsucht werden sollen. Möchten Sie also beispielsweise alle PHP-Dateien durchsuchen, stellt File_Find eine wirklich gute Hilfe dar.

Im einfachsten Fall übergeben Sie alle notwendigen Informationen direkt an den Konstruktor:

<?php 
include 'File/SearchReplace.php' ; 
 
// String, der gesucht werden soll 
$search = "Ja"; 
// String der die Ersetzung enthaelt 
$replace = "Nein"; 
 
// Dateien, die durchsucht werden sollen 
$files = array ('datei1.php', 
                'datei2.php' 
         ); 
// Verzeichnisse, die durchsucht werden sollen 
$directory=array('/home/paul/public_html/' 
                 /home/gerd/public_html/'); 
 
// Sollen Unterverzeichnisse durchsucht werden? 
$subdir=true; 
 
// Zeilenanfaenge, die ignoriert werden sollen 
$ignore = array('#', '//') ; 
 
// Objekt instanziieren 
$snr = new File_SearchReplace( $search, $replace, 
                               $files, $directory, 
                               $subdir,$ignore) ; 
// Suche ausfuehren 
$snr -> doSearch(); 
// Auf Fehler ueberpruefen 
if (''!=$snr->getLastError()) 
{ 
   die ($snr->getLastError()); 
} 
?>

Listing 16.5 Suchen und Ersetzen in Dateien

Der Konstruktor bekommt den zu suchenden Text und den Text, durch den der zu suchende Text ersetzt werden soll. Danach folgen die Dateinamen und die Verzeichnisse, die jeweils als Array übergeben werden. Bei den Verzeichnissen ist es wichtig, dass sie immer mit einem Slash (/) bzw. Backslash (\), je nach Betriebssystem, abgeschlossen werden, da das Paket sonst eine recht stattliche Anzahl von Warnungen produzieren kann. Die letzten beiden Parameter definieren, ob Unterverzeichnisse mit durchsucht werden sollen (was durch einen booleschen Wert zu definieren ist) und ob bestimmte Zeilen ignoriert werden sollen. Zeilen, die beim Ersetzungsvorgang ignoriert werden sollen, erkennt das Paket am Zeilenanfang. Die Zeilenanfänge, die ignoriert werden sollen, werden einfach in Form eines Arrays übergeben.

Im obigen Beispiel wird also in den Unterverzeichnissen /home/paul/public_html/ und /home/gerd/public_html/ nach den Dateien datei1.php und datei2.php gesucht, in denen jeweils jedes Auftreten von Ja durch Nein ersetzt wird. Dabei werden alle Zeilen ignoriert, die mit # oder // beginnen.

Die Methode doSearch() führt dann den eigentlichen Ersetzungsvorgang durch. In File_Find ist eine eigene Fehlerbehandlung implementiert, so dass Sie nicht auf die von PEAR zurückgreifen können. Die Methode getLastError() liefert Ihnen entweder die letzte Fehlermeldung oder einen leeren String, so dass auf dieser Basis ein Fehler diagnostiziert werden kann.

Das Paket unterstützt aber auch die Möglichkeit, mit regulären Ausdrücken zu arbeiten. Hierzu können Sie mithilfe der Methode setSearchFunction() definieren, welche PHP-Funktion zum Suchen und Ersetzen genutzt werden soll. Mit dem Parameter 'quick' greift das Paket auf str_replace() zurück. Der Parameter 'preg' definiert die Nutzung von Perl-kompatiblen regulären Ausdrücken, wohingegen 'ereg' die Unterstützung der PHP- bzw. POSIX-Variante einschaltet. Wenn Sie eine dieser Varianten nutzen, ist es allerdings nicht möglich, Zeilen mithilfe eines Kommentarzeichens von der Konvertierung auszunehmen.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de