처음으로 올려봅니다.
PHP 개발자는 아니고 사이트 개발 의뢰하려고 하는데 활동점수가 부족해서..
제가 사이트 개발하면서 PHP 공부해가면서 만든 코드입니다.
원본 디렉토리는 변경없이 new directory에 새로운 인코딩 지원하게끔 파일 변경해주는 코드입니다.
<?php
function iconv_copy($src_filename, $dest_filename, $src_charset, $to_charset)
{
$retry=0;
do
{
$src_file=fopen($src_filename, "r");
if( $src_file )
break;
echo "Unable to open remote file[$retry] [$src_filename]<br>";
}while($retry++ < 10 );
$retry=0;
do
{
$dest_file=fopen($dest_filename, "w");
if( $dest_file )
break;
echo "Unable to open file[$retry] [$dest_filename]<br>";
}while($retry++ < 10 );
//echo "FILE[$src_filename]<br>";
while (!feof($src_file))
{
$line=fgets($src_file);
if(( $tok=stristr($line, "charset=")) )
{
$str=strtok($tok, "=");
$str=strtok("\\\">");
$src_charset=str_replace("\"","",$str);
//echo "Find[$src_charset]<br>";
break;
}
}
fseek($src_file, 0, SEEK_SET);
while (!feof($src_file))
{
$line=fgets($src_file);
if( stristr($line, "charset=") )
{
//echo "CHARSET[$src_charset][$to_charset] [$line] => ";
$line=str_ireplace($src_charset, $to_charset, $line);
//echo "[$line]<br>";
}
fputs($dest_file, iconv($src_charset, $to_charset, $line));
}
fclose($src_file);
fclose($dest_file);
}
{
$retry=0;
do
{
$src_file=fopen($src_filename, "r");
if( $src_file )
break;
echo "Unable to open remote file[$retry] [$src_filename]<br>";
}while($retry++ < 10 );
$retry=0;
do
{
$dest_file=fopen($dest_filename, "w");
if( $dest_file )
break;
echo "Unable to open file[$retry] [$dest_filename]<br>";
}while($retry++ < 10 );
//echo "FILE[$src_filename]<br>";
while (!feof($src_file))
{
$line=fgets($src_file);
if(( $tok=stristr($line, "charset=")) )
{
$str=strtok($tok, "=");
$str=strtok("\\\">");
$src_charset=str_replace("\"","",$str);
//echo "Find[$src_charset]<br>";
break;
}
}
fseek($src_file, 0, SEEK_SET);
while (!feof($src_file))
{
$line=fgets($src_file);
if( stristr($line, "charset=") )
{
//echo "CHARSET[$src_charset][$to_charset] [$line] => ";
$line=str_ireplace($src_charset, $to_charset, $line);
//echo "[$line]<br>";
}
fputs($dest_file, iconv($src_charset, $to_charset, $line));
}
fclose($src_file);
fclose($dest_file);
}
function dir_iconv($from_dir, $to_dir, $src_charset, $to_charset)
{
if( !is_dir($from_dir) || !is_dir($to_dir) )
{
echo "$from_dir or $to_dir is not a dir<br>";
return;
}
$dh=opendir($from_dir);
if( !$dh )
{
echo "$from_dir open fail!<br>";
return;
}
while(($file = readdir($dh)) != false)
{
if( $file == "." || $file == ".." )
continue;
if (is_file($from_dir . '/' . $file))
{
iconv_copy($from_dir . '/' . $file, $to_dir . '/'. $file, $src_charset, $to_charset);
}
else if( is_dir($from_dir . '/' . $file))
{
mkdir($to_dir . '/'. $file);
dir_iconv($from_dir . '/' . $file, $to_dir . '/'. $file, $src_charset, $to_charset);
}
}
closedir($dh);
}
{
if( !is_dir($from_dir) || !is_dir($to_dir) )
{
echo "$from_dir or $to_dir is not a dir<br>";
return;
}
$dh=opendir($from_dir);
if( !$dh )
{
echo "$from_dir open fail!<br>";
return;
}
while(($file = readdir($dh)) != false)
{
if( $file == "." || $file == ".." )
continue;
if (is_file($from_dir . '/' . $file))
{
iconv_copy($from_dir . '/' . $file, $to_dir . '/'. $file, $src_charset, $to_charset);
}
else if( is_dir($from_dir . '/' . $file))
{
mkdir($to_dir . '/'. $file);
dir_iconv($from_dir . '/' . $file, $to_dir . '/'. $file, $src_charset, $to_charset);
}
}
closedir($dh);
}
function copy_with_str_replace($src_filename, $dest_filename, $from_str, $to_str)
{
$retry=0;
do
{
$src_file=fopen($src_filename, "r");
if( $src_file )
break;
echo "Unable to open remote file[$retry] [$src_filename]<br>";
}while($retry++ < 10 );
$retry=0;
do
{
$dest_file=fopen($dest_filename, "w");
if( $dest_file )
break;
echo "Unable to open file[$retry] [$dest_filename]<br>";
}while($retry++ < 10 );
while (!feof($src_file))
{
$line=fgets($src_file);
$line = str_replace($from_str, $to_str, $line);
$line = str_ireplace($from_str, $to_str, $line);
fputs($dest_file, $line);
}
fclose($src_file);
fclose($dest_file);
}
{
$retry=0;
do
{
$src_file=fopen($src_filename, "r");
if( $src_file )
break;
echo "Unable to open remote file[$retry] [$src_filename]<br>";
}while($retry++ < 10 );
$retry=0;
do
{
$dest_file=fopen($dest_filename, "w");
if( $dest_file )
break;
echo "Unable to open file[$retry] [$dest_filename]<br>";
}while($retry++ < 10 );
while (!feof($src_file))
{
$line=fgets($src_file);
$line = str_replace($from_str, $to_str, $line);
$line = str_ireplace($from_str, $to_str, $line);
fputs($dest_file, $line);
}
fclose($src_file);
fclose($dest_file);
}
function dir_with_str_replace($from_dir, $to_dir, $from_str, $to_str)
{
if( !is_dir($from_dir) || !is_dir($to_dir) )
{
echo "$from_dir or $to_dir is not a dir<br>";
return;
}
$dh=opendir($from_dir);
if( !$dh )
{
echo "$from_dir open fail!<br>";
return;
}
while(($file = readdir($dh)) != false)
{
if( $file == "." || $file == ".." )
continue;
$src = $from_dir . '/' . $file;
$dest = $to_dir . '/'. $file;
$dest = str_ireplace($from_str, $to_str, $dest);
if (is_file($src))
{
copy_with_str_replace($src, $dest, $from_str, $to_str);
}
else if( is_dir($src))
{
mkdir($dest);
dir_with_str_replace($src, $dest, $from_str, $to_str);
}
}
closedir($dh);
}
{
if( !is_dir($from_dir) || !is_dir($to_dir) )
{
echo "$from_dir or $to_dir is not a dir<br>";
return;
}
$dh=opendir($from_dir);
if( !$dh )
{
echo "$from_dir open fail!<br>";
return;
}
while(($file = readdir($dh)) != false)
{
if( $file == "." || $file == ".." )
continue;
$src = $from_dir . '/' . $file;
$dest = $to_dir . '/'. $file;
$dest = str_ireplace($from_str, $to_str, $dest);
if (is_file($src))
{
copy_with_str_replace($src, $dest, $from_str, $to_str);
}
else if( is_dir($src))
{
mkdir($dest);
dir_with_str_replace($src, $dest, $from_str, $to_str);
}
}
closedir($dh);
}
mkdir("edit2");
dir_iconv("geditor", "edit2", "EUC-KR", "UTF-8");
//dir_with_str_replace("simple_red", "red");
?>
dir_iconv("geditor", "edit2", "EUC-KR", "UTF-8");
//dir_with_str_replace("simple_red", "red");
?>
게시글 목록
| 번호 | 제목 |
|---|---|
| 1717629 | |
| 1717626 | |
| 1717625 | |
| 1717621 | |
| 1717619 | |
| 1717611 | |
| 1717610 | |
| 1717609 | |
| 1717607 | |
| 1717601 | |
| 1717598 | |
| 1717591 | |
| 1717590 | |
| 1717583 | |
| 1717575 | |
| 1717572 | |
| 1717568 | |
| 1717566 | |
| 1717549 | |
| 1717545 | |
| 1717533 | |
| 1717512 | |
| 1717511 | |
| 1717508 | |
| 1717495 | |
| 1717479 | |
| 1717473 | |
| 1717470 | |
| 1717463 | |
| 1717452 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기