B
BlackPanter
Guest
Konnichi wa,
ich bin dabei mir ein Script zu Schreiben das mir eine Websie unabhaengig ihres Umfangs in Smarty-Form kopieren soll.
Jetzt bin ich auf 3 fuer mich nicht loesbare Probleme gestossen:
1. Die japanischen Zeichen werden mir nicht korrekt in die Datei geschrieben. Wenn ich jedoch mit echo ausgeben lasse, was er mir reinschreiben soll, wird es mir korrekt angezeigt.
2. Der japanische Teil der Website wird zum Teil gar nicht oder nur zum Teil in die Datei geschrieben.
3. Zwischen den einzelnen Teilen des Quelcodes, in der neuen Datei, haette ich gerne einen Zeilenumbruch. Wenn ich es mit '\r\n' oder nur '\n' versuche wird mir das einfach mit in den Quelcode geschrieben.
Der Code sieht folgendermassen jetzt aus:
Gruesse aus Japan
Soeren
ich bin dabei mir ein Script zu Schreiben das mir eine Websie unabhaengig ihres Umfangs in Smarty-Form kopieren soll.
Jetzt bin ich auf 3 fuer mich nicht loesbare Probleme gestossen:
1. Die japanischen Zeichen werden mir nicht korrekt in die Datei geschrieben. Wenn ich jedoch mit echo ausgeben lasse, was er mir reinschreiben soll, wird es mir korrekt angezeigt.
2. Der japanische Teil der Website wird zum Teil gar nicht oder nur zum Teil in die Datei geschrieben.
3. Zwischen den einzelnen Teilen des Quelcodes, in der neuen Datei, haette ich gerne einen Zeilenumbruch. Wenn ich es mit '\r\n' oder nur '\n' versuche wird mir das einfach mit in den Quelcode geschrieben.
Der Code sieht folgendermassen jetzt aus:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
//HTML-Dateien in einem Ordner in den Array $files_convert speichern.
function get_dir($par_dir, $ebene){
$files_convert = array();
if ($handle = opendir($par_dir)){
while (false != ($file = readdir($handle))) {
if($file != '.' && $file != '..') {
$path_parts = pathinfo($file);
if(is_dir($par_dir."/".$file)){
//echo $ebene."<b>".$file."</b><br>\n";
get_dir($par_dir."/".$file , $ebene." ");
}else {
if($path_parts["extension"]=="html"){
$path = $par_dir."/".$file;
//echo $ebene."<a href='".$par_dir."/".$file."'>".$par_dir."/".$file."</a><br>\n";
array_push($files_convert, $path);
}
}
}
}
closedir($handle);
}
//Fuer jedes Element in $files_convert
foreach ($files_convert as $value){
$path = pathinfo($value);
$tmp_dir = substr($path['basename'], 0, -5); //Dateinamen ohne Endung
$file_dir = substr($value, strpos($value, "/")+1, strpos($value, "/", 3)-1); //neuer Speicherort
$new_file_dir = "newtest/".$file_dir;
$dir = $value;
$site = $tmp_dir.'.php'; //Daeiname mit PHP-Endung
// Inhalt von der Seite einlesen
//$array = file($value);
// Den Array von $array in eine String $string umwandeln
//$string = implode("", $array);
$handle = fopen ($value, "rb");
$string = fread ($handle, utf8_encode(filesize ($value)));
fclose ($handle);
// Offset auf Start setzen
$offset=0;
//$handle_dir = fopen($new_file_dir, "w+b");
$handle_filedir = fopen($new_file_dir.$site, "w+b");
// Ordner erstellen wenn noch ncih vorhanden
if (! is_dir($new_file_dir)){
mkdir($new_file_dir, 0777, true);
}
//<title> auslesen und in Datei schreiben
//while(strpos($string,'<title>', offset) !==false){
$anfangtitle=strpos($string,'<title>', $offset)+62;
$endtitle=strpos($string,'</title>', $offset)-8;
$tmp_title=substr($string, $anfangtitle, $endtitle-$anfangtitle);
/*if (is_writable($handle_filedir)) {
fwrite($handle_filedir, '$index->assign("$title", $tmp_dir);\n?>');
}*/
//}
$title = '$index->assign("$title", \''.$tmp_title.'\');';
// Inhalt auslesen und schreiben
//while(strpos($string,'<!--content-->', $offset)!==false){
$anfang=strpos($string,'<!--content-->', $offset)+16;
$ende=strpos($string,'<!--EndeAuslesen!-->',$offset)-70;
$tmp_inhalt=substr($string, $anfang, $ende-$anfang);
/*if (is_writable($handle_filedir)) {
fwrite($handle_filedir, '$index->assign("$content",$inhalt);');
}*/
//}
$inhalt = '$index->assign("$content", \''.$tmp_inhalt.');\'';
$beginn = '<?php
require_once("smarty/Smarty.class.php"); // Smarty includen
$index=new Smarty; // Ein neues Smartyobjekt erzeugen
';
fwrite($handle_filedir, utf8_encode($beginn.$title.$inhalt));
//Datei schliessen
fclose($handle_filedir);
// Offset auf Ende setzen
$offset=$ende;
//
}
}
get_dir(".", "");
?>
</body>
</html>
Gruesse aus Japan
Soeren