A
AllesMeins
Guest
Moin,
dann will ich auch noch hier mal probieren ob ich Hilfe bekommen kann... Es ist ein PHP-Problem, das meines erachtens nicht ganz ohne ist. Mal schaun ob es hier ein paar PHP-Könner gibt die mir helfen können. Also:
Ich habe mir folgendes Script geschrieben, dass, wenn es fertig ist, in einem Verzeichniss und in sämtlichen unterverzeichnissen die Links in HTML-Dateien ändern soll:
//STARTVERZEICHNISS
$default_dir = "f:/Homepage/Crew/";
//ALLE VERZEICHNISSE AUSLESEN
function traverse_dir($dir, $section_id) {
chdir($dir);
if(!($dp = opendir($dir))) die("Kann folgenden Ordner nicht öffnen: $dir.");
while($file = readdir($dp)) {
if(is_dir($file)) {
if($file != '.' && $file != '..') {
//echo "/$dir<BR>";
traverse_dir("$dir/$file", $section_id);
chdir($dir);
}
}
//HTML-DATEINE SUCHEN
if (ereg("^[-0-9A-Za-z._=]+\.htm", $file)) $seite[] = $file;
if (ereg("^[-0-9A-Za-z._=]+\.html", $file)) $seite[] = $file;
for($i = 0; $i < count($seite); $i++){
//Pfad zerlegen
$dir_write = substr($dir, 12);
$Serie = substr($dir,18,3);
//HTML-DATEI ÖFFNEN
$test = fread(fopen($seite[$i], r), 10000);
//LINKS ERSETZTEN DURCH
$neu = "index.php?";
//LINKS SUCHEN
$pattern = '=(<a.*href\=")(.*/)?(index\S+)("[^>]*> )=Umsi';
$replace = "\\1\\2$neu\\4";
//LINKS ERSETZTEN
$test = preg_replace( $pattern, $replace ,$test);
echo nl2br(htmlspecialchars($test)) ;
}
}
closedir($dp);
}
traverse_dir($default_dir, $section_id);
Ich weiss jetzt nicht, ob es in dem derzeitigen Zustand richtig funktioniert, da ich sehr viel daran rumgewerkelt habe in den letzten Tagen. Jedenfalls habe ich nun das Problem, dass ich den Link der ersetzt werden soll in einer Variable brauch, bevor er verändert wird. Also ich möchte z.B.: index.htm in einer Variable haben bevor das Script index.htm durch etwas anders ersetzt. So wie das Script im Moment ist weiss ich aber nicht, wie ich es da rausbekommen soll... hat da irgendwer ne Lösung??
dann will ich auch noch hier mal probieren ob ich Hilfe bekommen kann... Es ist ein PHP-Problem, das meines erachtens nicht ganz ohne ist. Mal schaun ob es hier ein paar PHP-Könner gibt die mir helfen können. Also:
Ich habe mir folgendes Script geschrieben, dass, wenn es fertig ist, in einem Verzeichniss und in sämtlichen unterverzeichnissen die Links in HTML-Dateien ändern soll:
//STARTVERZEICHNISS
$default_dir = "f:/Homepage/Crew/";
//ALLE VERZEICHNISSE AUSLESEN
function traverse_dir($dir, $section_id) {
chdir($dir);
if(!($dp = opendir($dir))) die("Kann folgenden Ordner nicht öffnen: $dir.");
while($file = readdir($dp)) {
if(is_dir($file)) {
if($file != '.' && $file != '..') {
//echo "/$dir<BR>";
traverse_dir("$dir/$file", $section_id);
chdir($dir);
}
}
//HTML-DATEINE SUCHEN
if (ereg("^[-0-9A-Za-z._=]+\.htm", $file)) $seite[] = $file;
if (ereg("^[-0-9A-Za-z._=]+\.html", $file)) $seite[] = $file;
for($i = 0; $i < count($seite); $i++){
//Pfad zerlegen
$dir_write = substr($dir, 12);
$Serie = substr($dir,18,3);
//HTML-DATEI ÖFFNEN
$test = fread(fopen($seite[$i], r), 10000);
//LINKS ERSETZTEN DURCH
$neu = "index.php?";
//LINKS SUCHEN
$pattern = '=(<a.*href\=")(.*/)?(index\S+)("[^>]*> )=Umsi';
$replace = "\\1\\2$neu\\4";
//LINKS ERSETZTEN
$test = preg_replace( $pattern, $replace ,$test);
echo nl2br(htmlspecialchars($test)) ;
}
}
closedir($dp);
}
traverse_dir($default_dir, $section_id);
Ich weiss jetzt nicht, ob es in dem derzeitigen Zustand richtig funktioniert, da ich sehr viel daran rumgewerkelt habe in den letzten Tagen. Jedenfalls habe ich nun das Problem, dass ich den Link der ersetzt werden soll in einer Variable brauch, bevor er verändert wird. Also ich möchte z.B.: index.htm in einer Variable haben bevor das Script index.htm durch etwas anders ersetzt. So wie das Script im Moment ist weiss ich aber nicht, wie ich es da rausbekommen soll... hat da irgendwer ne Lösung??