Странное поведение iconv?

ustas

Элекомист №1
Странное поведение iconv?

Задача сконвертировать перевод osCommerce в utf8.

Писать такие вещи лень, быстрей найти можно на просторах интернета, вроде как все ок.
Сам код
PHP:
function convert($directory) {
	
	if (is_dir ( $directory )) {
		$direc = opendir ( $directory );
		while ( false !== ($file = readdir ( $direc )) ) {
			
			if ($file != "." && $file != "..") {
				
				if (is_file ( $directory . "/" . $file )) {
					
					$filename = explode ( ".", $file );
					
					if ($filename [1] === "html" || $filename [1] === "php") {
						
						$text = file_get_contents ( $directory . "/" . $file );
						$text = iconv ( "windows-1251", "utf-8", $text );
						file_put_contents ( $directory . "/" . $file, $text );
						
						echo $file . " ....... ok<br>";
					
					}
				
				} else if (is_dir ( $directory . "/" . $file )) {
					
					convert ( $directory . "/" . $file );
				
				}
			
			}
		}
		closedir ( $direc );
	}
}
}
Результат периодически такой выдает - define('eee', :?:НР?:ЕПА ~ обрыв файла, например в середине файла
файл - http://depositfiles.com/files/hyhjr7an0

Вот сижу и думаю, может с хардом у меня что?
Воспроизвожу сабж без проблем с периодичностью в 1 из 3

WinXP SP3, php 5.2.6, iconv 1.11
 

SiMM

Новичок
А почему Вы решили, что дело в iconv?
Код
PHP:
<?=iconv('CP1251','UTF-8',file_get_contents('russian1.php'))?>
ни к каким неожиданностям не приводит.
 

ustas

Элекомист №1
Ну я же не идиот, глюк ловится 1 раз из 3 на конкретном файле, единственное что я уже думаю - это ошибка записи
 

SiMM

Новичок
> глюк ловится 1 раз из 3 на конкретном файле
Ни разу не поймал.
Тем не менее не вижу ни одной причины, по которой iconv могла бы работать при одних и тех же входных данных на одной и той же машине при прочих равных условиях по разному.
 
Сверху