Помогите исправить баг

Статус
В этой теме нельзя размещать новые ответы.

dalera

Создатель
Регистрация
24 Сен 2009
Сообщения
41
Реакции
1
Этот код должен удалить дубли синонимов.
создал файл key.txt в него запихал базу с синонимами которую надо почистить от дублей.
слова расположены
бегу|бежит
бежит|бегу
Код:
<?php 
set_time_limit(0); 
$res=array(); 
$mass=file(”key.txt”); 
$mass=array_unique($mass); 
file_put_contents(’key_unique.txt’, implode(”",$mass)); 
?>
запустил на локалке Parse error: syntax error, unexpected '"' in C:\AppServ\www\php.php on line 6
может кто нибудь помоч?:(
 
1. Что за странные вариации в использовании кавычек? Приди к какому-то определенному варианту, его и юзай.
PHP:
<?php
	set_time_limit(0);
	$res = array();
	$mass = file("key.txt");
	$mass = array_unique($mass);
	file_put_contents("key_unique.txt", implode("",$mass));
?>

2. Твой вариант не вернет уникальный массив, т.к. строки "бегу|бежит" и "бежит|бегу" - на самом деле не идентичные. Думай над более продвинутым алгоритмом, чтобы избавиться от дубликатов.
 
странно.... пять ругается.

Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 35 bytes) in C:\AppServ\www\php.php on line 4

Код:
<?php 
    set_time_limit(0); 
    $res = array(); 
    $mass = file("key.txt"); 
    $mass = array_unique($mass); 
    file_put_contents("key_unique.txt", implode("",$mass)); 
?>
Alix с кавычками понял, исправился))

жаль неработает
 
странно.... пять ругается.
Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 35 bytes) in C:\AppServ\www\php.php on line 4
Код:
<?php 
    set_time_limit(0); 
    $res = array(); 
    $mass = file("key.txt"); 
    $mass = array_unique($mass); 
    file_put_contents("key_unique.txt", implode("",$mass)); 
?>
Alix с кавычками понял, исправился))
жаль неработает

Уменьшай размер файла key.txt или изменяй настройки в пхп.ини

PS: спасибо - кнопкой! ;)
 
странно.... пять ругается.
Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 35 bytes) in C:\AppServ\www\php.php on line 4

Скрипту требуется больше памяти, чем ему даёт PHP. Что можно сделать:

1. В .htaccess добавить строку (при условии, что PHP работает под Apache:(
Код:
php_value memory_limit 32M
2. В php.ini (при условии, что вы можете его редактировать) изменить значение параметра memory_limit:
Код:
memory_limit 32M
3. Добавив в index.php после:
<?php следующий код:
Код:
  [URL="http://www.nulled.ws/r.php?url=http%3A%2F%2Fwww.php.net%2Fini_set"]ini_set[/URL]('memory_limit', '32M');
Если 32mb не хватает — увеличиваем дальше.

Если речь идет о хостинге, и ни один из вариантов не подошел — пишем в саппорт :)
 
  • Заблокирован
  • #6
Попробуй так. По идее все обратные обратные ключи и идентичные должны отсеиваться. на работоспособность НЕ проверял, но идею думаю будет понятна
PHP:
<?php 
    set_time_limit(0); 
    $res = array(); 
    $mass = file("key.txt");
	$keys = array(); 
	$ouit = array(); 
	$_in = array();
	
	foreach($mass as $string) {
		list($pram1, $pram2) = explode("|", $string);
		$keys[$pram1][$pram2] = "1";
	}
	
	foreach($keys as $key => $val) {
		$key = trim($key); $val = trim($val);
		if(($keys[$key][$val] != "1") AND ($keys[$val][$key] != "1")) {
			$ouit[$key] = $val;
		}
	}
	
	foreach($ouit as $key => $val) {
		$_in[] = $key."|".$val;
	}
	
	$in = array_unique($_in);
	$out_string = implode("\n", $in);


    file_put_contents("key_unique.txt",$out_string);
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху