zikosa
Создатель
- Регистрация
- 25 Ноя 2008
- Сообщения
- 22
- Реакции
- 1
- Автор темы
- #1
Есть файл следующего уникального содержания:
архитектура
архитектураь
архитектураъ
суперархитектор
суперархитекторь
суперархитекторъ
На выходе требуется получить файл следующего содержания:
архитектура
суперархитектор
Код скрипта PHP слудующий:
Всё работет, НО !!! При файлах размерами в МБ заметна малая скорость обработки. (файл в 50Мб может обрабатываться пару суток)
Подскажите пожалуйста идеи (код) по увеличению скорости обработки. (есть ли что то типа похожего на array_unique но через пользовательскую функцию).
архитектура
архитектураь
архитектураъ
суперархитектор
суперархитекторь
суперархитекторъ
На выходе требуется получить файл следующего содержания:
архитектура
суперархитектор
Код скрипта PHP слудующий:
PHP:
<?php
error_reporting(7);
set_time_limit(0);
$storona = "lat";
$a = file ("1.txt");
$kola = count ($a);
for ($n=0; $n<$kola; $n++)
{
$b = translitruslat (trim($a[$n]), $storona);
$x = 0;
$y = count ($r);
for ($e=0; $e<$y; $e++)
{
if ($r[$e] == $b)
{
$x = 1;
break 1;
}
}
if ($x == 0)
{
$zap = fopen ("2.txt","a");
fwrite ($zap, trim($a[$n])."\r\n");
fclose ($zap);
$r[] = $b;
}
}
/////
function translitruslat ($stringi, $storona) //$storona = "lat" -> рус-лат; $storona = "rus" -> лат-рус
{
$stringi = preg_replace ("|([^a-zа-я\ё0-9\ ]+)|i"," ",trim($stringi));
$stringi = preg_replace ("|([\ ]+)|i"," ",trim($stringi));
$rus = array ("ё","Ё","щ","Щ","ш","Ш","ж","Ж","я","Я","ч","Ч","ю","Ю","э","Э","ъ","Ъ","ь","ь");
$lat = array ("jo","Jo","shh","Shh","sh","Sh","zh","Zh","jа","Jа","ch","Ch","ju","Ju","je","Je","","","","");
if ($storona == "lat")
{
$stringi = str_replace($rus,$lat,$stringi);
$stringi = strtr($stringi,"йЙцЦуУкКеЕнНгГзЗхХфФыЫвВаАпПрРоОлЛдДсСмМиИтТбБ ","jJcCuUkKeEnNgGzZhHfFyYvVaApPrRoOlLdDsSmMiItTbB-");
}
else
{
$stringi = str_replace($lat,$rus,$stringi);
$stringi = strtr($stringi,"jJcCuUkKeEnNgGzZhHfFyYvVaApPrRoOlLdDsSmMiItTbB-","йЙцЦуУкКеЕнНгГзЗхХфФыЫвВаАпПрРоОлЛдДсСмМиИтТбБ ");
}
return(trim($stringi));
}
?>
Подскажите пожалуйста идеи (код) по увеличению скорости обработки. (есть ли что то типа похожего на array_unique но через пользовательскую функцию).