Batch Massenumbenennung von *.PHP nach *.PHP52

Bullabeisser

assimiliert
Hallo an die Gemeinde,

ich habe auf meinem Webspace das CMS Drupal 5.7 laufen. Der Server wurde jetzt umgestellt auf PHP 5.3/5.4/
Das CMS kann aber nur bis max. PHP 5.2 und mein Provider (all-inkl.com) hat mir mitgeteilt, ich solle alle Dateien mit der Endung PHP nach PHP52 umbenennen - dann wird PHP 5.2 benutzt.
Und nun mein Problem:
Das sind mehrere hundert PHP-Dateien, da sitz ich ja Tage und Wochen.

Gibts da ein Scipt, ne PHP oder irgendwas das so eine Massenumbenennung über das Hauptverzeichnis und alle Unterverzeichnisse serverseitig bewältigen kann?
Alternative: Kopie des CMS liegt auf meinem PC. Hat jemand ggf. nen Stapeljob der so was macht. Leider kann ich keine Batchjobs mehr schreiben - habs schlicht im Laufe der Jahre vergessen.

Was ich nich kenne: Stapeldatei mit "rename *.php *.php52 - aber wie das über die Unterverzeichnisse laufen soll weiss ich nicht mehr.

Bin für jegliche Hilfe dankbar.

Gruß
 
Zuletzt bearbeitet:
Hallo Bullabeisser,

habe hier mal ein Batch "gebastelt", ohne Gewähr und nur im kleinen Local-Bereich getestet. ^^evtl. gibt es auch eine elegantere Lösung?!

Code:
[B][COLOR=#0000ff]ECHO[/COLOR][/B] OFF
[COLOR=#008000]REM - Vorschau von: PHP-Dateien suchen und in PHP52-Dateien umbenennen[/COLOR]
[B][COLOR=#0000ff]FOR[/COLOR][/B] /F [B][COLOR=#FF0000]%%A[/COLOR][/B] [COLOR=#0000ff][B]IN[/B][/COLOR] ('[B][COLOR=#0000ff]DIR[/COLOR][/B] /AD /ON /B /S') [B][COLOR=#0000ff]DO[/COLOR][/B] ([B][COLOR=#0000ff]FOR[/COLOR][/B] /F "delims=.; tokens=1" [COLOR=#FF0000][B]%%B[/B][/COLOR] [B][COLOR=#0000ff]IN[/COLOR][/B] ('[B][COLOR=#0000ff]DIR[/COLOR][/B]/B "[COLOR=#FF0000][B]%%A[/B][/COLOR]\*.php"') [B][COLOR=#0000ff]DO[/COLOR][/B] ([COLOR=#0000ff][B]ECHO[/B][/COLOR] REN "[COLOR=#FF0000][B]%%A[/B][/COLOR]\[COLOR=#FF0000][B]%%B[/B][/COLOR].php" "[COLOR=#FF0000][B]%%B[/B][/COLOR].php52"))
[COLOR=#0000ff][B]PAUSE[/B][/COLOR]
[COLOR=#008000]REM - PHP-Dateien suchen und in PHP52-Dateien umbenennen[/COLOR]
[B][COLOR=#0000ff]FOR[/COLOR][/B] /F [COLOR=#FF0000][B]%%A[/B][/COLOR] [B][COLOR=#0000ff]IN[/COLOR][/B] ('[B][COLOR=#0000ff]DIR[/COLOR][/B] /AD /ON /B /S') [B]DO[/B] ([B][COLOR=#0000ff]FOR[/COLOR][/B] /F "delims=.; tokens=1" [COLOR=#FF0000][B]%%B[/B][/COLOR] [B][COLOR=#0000ff]IN[/COLOR][/B] ('[B][COLOR=#0000ff]DIR[/COLOR][/B]/B "[COLOR=#FF0000][B]%%A[/B][/COLOR]\*.php"') [B][COLOR=#0000ff]DO[/COLOR][/B] ([B][COLOR=#0000ff]REN[/COLOR][/B] "[COLOR=#FF0000][B]%%A[/B][/COLOR]\[COLOR=#FF0000][B]%%B[/B][/COLOR].php" "[COLOR=#FF0000][B]%%B[/B][/COLOR].php52"))
[COLOR=#0000ff][B]PAUSE[/B][/COLOR]

PS: Automatisch Syntax-Highlighting (Einfärben) ist über die Forum-SW nicht möglich, oder?
 
Zuletzt bearbeitet:
Lokal getestet und kürzer:
Code:
for /F %i in ('dir /B /S *.php') do ren %i %~ni.php52


ACHTUNG: Der Code ist für die Verwendung in cmd.exe gedacht. Wenn du den in einer Batch Datei verwenden willst, musst du die % durch %% ersetzen.
 
Nuja für nen Webserver sollte das Skript wohl eher für Linux lauffähig sein und nicht die cmd.exe ;)

Edit: Achso, sorry. "Kopie des CMS liegt auf dem PC" hab ich wohl überlesen.
 
Dann musst du aber auch innerhalb der Dateien jede Textstelle ändern.
Sonst funktionieren Links nimmer.

Und was bedeutet kann aber nur bis max. PHP 5.2?
Ich kenne Scripte, die setzen eine bestimmte Version voraus, ab der sie laufen.
Andersrum dünkt mir recht seltsam.
 
Ich weis nicht ob die Links innerhalb der php Dateien geändert werden müssen. Bei meinem Hoster ist es so dass wenn ich z.b. php 5.2 brauche, ich einfach eine htaccess Datei erstellen muss wo drinnen steht welche Version gebraucht wird und dann wird alles innerhalb des Verzeichnisses mit der Version behandelt...

D.h. würde ich zuerst die Dateien umbenennen und so ausprobieren. I.d.R. denken die Hoster schon an solche Sachen...
 
@All: Ich bei bei all-inkl.com und von denen hab ich ne Anleitung 1. die .htaccess anpassen (AddHandler php52-cgi .php) oder 2. alle PHP-dateien von .PHP nach .PHP52 ändern.

Punkt 1 ändert die Zugriffsrechte von den Dateien, die per PHP erzeugt werden. Ich krieg also mit FTP Probleme und muss dann ggf. Besitzrechte ändern (CHOWN).
Punkt 2 ändert keine Besitzrechte und laut Angaben von all-inkl.com reicht das.

Mal sehen - ich melde mich.

Nachschlag:
Ich habe mich für Punkt 1 entschieden und was soll ich sagen: Drupal 5.7 läuft wieder wie gehabt. Die AddHandler-zeile muss in der .htaccess als erste Zeile rein. Es hat übrigens nicht funktioniert die Datei auf dem Webspace zu ändern (ändern ging - aber nicht gefressen, warum auch immer). Also auf der HDD die htaccess.txt angepasst und wollte die hochschieben. NIX. Jetzt mußte ich die Besitzrechte ändern (ganzes Verzeichnis rekusrsiv - bei all-inkl.com kein Problem - geht über den KAS und Tools). Also Besitzrechte auf meinen FTP-Namen geändert. Hochschieben geht jetzt. Alte .htaccess löschen. Die htaccess.txt umbenennen in .htaccess - und es rennt. Ich fass es nicht, es rennt. Die Website ist ohne Fehlermeldungen da.
Was nicht mehr rennt ist MySQLDumper. Hängt in der Anmeldeschleife fest. Das ist aber kein Problem. Die "alte" löschen und die "neueste" hochladen und konfigurieren. Ist ein Kinderspiel.

Trotzdem mein Dank an alle Beteiligten. Ggf. hilft der Thread ja anderen Betroffenen, die von PHP 4.x auf 5.x upgraden (wollen wie ich oder müssen).
 
Zuletzt bearbeitet:
Oben