Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Ищу скрипт для перемешки урлов в текстовом файле
цитата
26/08/07 в 13:09
 Johna
нужно чтобы скрипт смог миксовать урлы, например:
есть такой файл с урлами
1
2
3
4
5
после обработки нужен примерно такой результат
4
2
5
1
3

у меня уже есть подобный скрипт
<?php
$url=file('url.txt');
shuffle($url);
$f=fopen('url_round.txt','w');
foreach ($url as $u)
fwrite($f,rtrim($u)."\r\n");
fclose($f);
?>

он миксует хорошо небольшие файлы, но когда в файле примерно 200 урлов то мешанина получаеться не качественная =)

Кто может подсказать если уже готовые такого рода скрипты или может быть кто сможет доработать уже существующий скрипт ?
цитата
26/08/07 в 13:15
 Kn
могу предложить shuffle от перла
мешаю файлы по 300-500 урлов - нормально получается

ЗЫ а два раза пропустить не пробовал?)
цитата
26/08/07 в 14:04
 Palmowner
прога Raptor умеет за минутку перемешивать файлики по 200 метров
цитата
26/08/07 в 14:07
 Johna
пробовал, без изменений практически
если нормально мешает, интересно попробовать =)
цитата
26/08/07 в 15:52
 Johna
Palmowner писал:
прога Raptor умеет за минутку перемешивать файлики по 200 метров

где ее качнуть можно ?
цитата
26/08/07 в 20:24
 Palmowner
вот залил со своего дистриба
http://rapidshare.com/files/51428643/raptor.zip.html
цитата
26/08/07 в 22:49
 Johna
спасибо парни за помощь, но оказываеться этот скрипт
<?php
$url=file('url.txt');
shuffle($url);
$f=fopen('url_round.txt','w');
foreach ($url as $u)
fwrite($f,rtrim($u)."\r\n");
fclose($f);
?>

прекрасно работает, а я чуток протормозил
Сибтор привет ;)
цитата
27/08/07 в 18:48
 Cibtor
Кармы отсыпь icon_smile.gif
цитата
28/08/07 в 10:55
 Zhidrons
вообще, строго говоря, shuffle() не самый быстрый способ перемешать массив. запамятовал где точно обсуждалось на ру-борде эта тема. Существует более быстрый алгоритм
цитата
28/08/07 в 19:20
 eugenyZ
ещё вариант icon_smile.gif

$maxx=10; // -- числа будут от 1 до $maxx
$maxn=5; // -- всего $maxn чисел в массиве
$x=array(); // здесь будет массив наших чисел
$tmp=array(); // временный массив

for ($i=0; $i<$maxn; $i++) {
do {
$a=rand(1,$maxx);
} while(isset($tmp[$a]));
$tmp[$a]=1;
$x[]=$a;
}
unset($tmp);
for ($i=0; $i<count($x); $i++) echo "$x[$i] ";
цитата
28/08/07 в 22:54
 Cibtor
Zhidrons писал:
вообще, строго говоря, shuffle() не самый быстрый способ перемешать массив. запамятовал где точно обсуждалось на ру-борде эта тема. Существует более быстрый алгоритм
Ну во всяком случае во всех факах и доках по РНР пишут, что нефиг выдумывать свой алгоритм если уже есть стандартная функция, всеравно быстрее не будет icon_smile.gif
цитата
04/09/07 в 16:44
 _s_[sov]
а я бы предпочел заюзать array_rand() icon_smile.gif


Эта страница в полной версии