дайте пожалуйста наводку на программиста - языками не владею пока

1 234 5
[Удален]
#21


<?php

$arr=array('Петя','Прокоп','Афанасий');

srand((float)microtime() * 1000000);
shuffle($arr);

foreach ($arr as $name)
{
print $name."<br>";
}

?>

Выдаёт список в произвольном порядке.

4292631 - если ещё что-то нужно.

Edit: В принципе - прямым текстом

[Удален]
#22

Вы зачем людей пугаете?

Под перл апач надо настраивать... Да на любом хостинге платном всё настроено!

Сам скрипт (условно назовём "rnd_txt.cgi"):

#!/usr/bin/perl


$myfile='file_text.txt';
$num_string_print=5;

print "Content-Type: text/plain\n\n";
if (open (datesZ, "<$myfile") !=0){
@Baze_Z = <datesZ>;
close (datesZ);
$all_num_string_in_baze=@Baze_Z;
for ($n=0; $n<$num_string_print; $n++){
$Rnd_seed=int rand($all_num_string_in_baze);
print "$Baze_Z[$Rnd_seed]";
}
}else{print "NO FILE READ";}

Файл "file_text.txt":

1 господа, а вы не пробовали слушать диджейский винил на граммофоне?

2 хозяин, это ты?
3 рано или поздно на байты начинаешь смотреть как на совокупность бит...
4 самые сложные аспекты обычно просты, но недокументированны...
5 все мы боги в своём цифровом мире.
6 хочешь быть оригинальным - будь добрым.
7 тонут в первую очередь те, кто мелко плавает.
8 человеческая глупость даёт представление о бесконечности...
9 как?! Вы не читали Пикассо?
10 никто не знает столько, сколько не знаю я...
11 я не механик. Я даже не знаю, каким концом отвёртки забивают гвозди...

Что с этими файлами делать?

Файл "rnd_txt.cgi" копируем его содержимое отсюда и сохраняем в файл на своём компьютере. Потом загружаем в ТЕКСТОВОМ РЕЖИМЕ на хостинг, в папку "cgi-bin".

Файл "file_text.txt" тоже копируем отсюда и тоже сохраняем в файл и копируем в папку "cgi-bin" хостинга.

Как увидеть результат работы?

Если в сети ваш сайт виден как:

http://test.test/

то результат работы скрипта виден как:

http://test.test/cgi-bin/rnd_txt.cgi

Если вам нужно, что бы скрипт выдавал не 5 строк сразу, а только 1 то впишите:

$num_string_print=1;

Обратите внимание: perl скрипты требуют, что бы код переноса строк был UNIX стандарта, \x0A, обычный блокнот сохраняет с кодом \x0D\x0A, та что что бы не иметь проблем, либо загружаем скрипты в режиме передачи текстовых файлов, либо редактируем скрипты одним из редакторов, которые умеют сохранять в с кодом переноса строк \x0A, например: HOD Html Editor

Будут вопросы, можно писать личные сообщения в этом форуме.

Карбофос
На сайте с 08.07.2005
Offline
28
#23

Mona,

вот тебе еще скриптик ,

<?php

$stroka[0] = "Петя";

$stroka[1] = "Прокоп";

...................................................................

..................................................................

$stroka[99] = "Афанасий";

srand ((double)microtime()*1000000);

$randomnum = rand(0, count($stroka)-1);

echo $stroka[$randomnum] ;

?>

думаю понятно все , он очень прост ... если что сложнее в аську

иностранец с табуреткой
M
На сайте с 28.05.2005
Offline
51
#24

ха, конкурс на лучший скрипт! Спасибо. большое. Ну мне кое-что понятнее. Мне сказали, что в перспективе надо базу данных делать, но сейчас это пока неактуально. Надо просто избавиться от неоправданной иехархии. Все вроде понятно, только у меня Петя, это не только Петя. Это такое вот

<tr><td>Петя</td><td><петькина фотка></td><td>г.Дибуны</td><td></td></tr>

<tr><td>Афоня</td><td><афонина фотка></td><td>г.Москва</td><td></td></tr>

как это вставить в код? и если список на несколько страниц и нужно, чтобы имена ходили по страницам?

[Удален]
#25
Vladimir_Rublin:
Написал:

Тогда уж так:


#!/usr/bin/perl

# Используем стрикт. Дисциплинирует :-)
use strict;

# Название файла со списком
my $file='list.txt';

# Откываем файл со списком. Ежели не открывается, то дохнем с вменяемым сообщением об ошибке.
open (LIST, $file) or die "Чебурашки сожрали файл, барин.";

# Удаляем пустые строчки. Нкогда не знаешь, кому взбредёт в голову поклацать Enter в файле списка
my @list=grep (!/^\s+$/,<LIST>);
# Заодно из всех строк убирам CR и ему подобное
@list=grep {$_=~s/(\n|\r|\n\r)//g || 1} @list;
close (LIST);

# Перетасовка колоды
@list=shuffle_list(@list);

# вывод всего, что есть в колоде.
foreach my $element(@list)
{
print $element;
}


sub shuffle_list
{
# Тут мы "выдёргиваем" по одному элементу из "колоды" и
# вставляем в другую. В произвольном порядке.

my @new_list;
while (@_)
{
push(@new_list,splice(@_,rand(@_),1));
}
return @new_list;
}

(Список в list.txt)

Мона, тут есть концептуальное несоотвествие, определитесь:

1) Хотите ли вы свой "список" показывать, как перетасованную колоду. То есть при списке скажем 1,2,3 давать

2,1,3 или 3,1,2 или 1,3,2 и прочие пермутации

2) Либо же любой расклад, с шансом на повтор

2,2,3 - например.

И ещё - хотите ли вы показывать ВЕСЬ список, или же только какую-то часть. И опять таки см. предыдущие варианты. То есть:

из 1,2,3,4,5

1) 1,3,5 или 2,5,3

или же

2) 3,5,3 или 2,2,5?

И поясните, что вы имеете ввиду "Имена ходили по страницам"?

Edit: Исправил грамматику.

[Удален]
#26

Желаете с базой данных? нет проблем - PHP,MySQL

(Предполагается что таблице - table, а нужный столбик в таблице - string)


<?php
$db_user="user";
$db_pass="pass";
$db_base="base";
$db_table="table";

$dbh=mysql_connect ("localhost", $db_user, $db_pass) or die ('Чебурашки ещё и базы данных портют.. Сволочи. Записку оставили: ' . mysql_error());
mysql_select_db ($db_base);
$result=mysql_query("SELECT * FROM strips $db_table order by rand()");
while ($my_row=mysql_fetch_array($result))
{
echo $my_row['string'];
}
?>

Тоже самое можно сделать и на Perl. Лень только :-)

Карбофос
На сайте с 08.07.2005
Offline
28
#27

Mona,

так поменяй $stroka[0] = "Петя";

на

$stroka[0] = "<tr><td>Афоня</td><td><афонина фотка></td><td>г.Москва</td><td></td></tr>";

[Удален]
#28
Карбофос:
Mona,

так поменяй $stroka[0] = "Петя";

на

$stroka[0] = "<tr><td>Афоня</td><td><афонина фотка></td><td>г.Москва</td><td></td></tr>";

И позволю себе немножко пояснить этот вариант.

Скажем нам надо вставить <img src="/big_nose.jpg" alt="Большой нос">

то уже такой вариант:

$stroka[0] = "<img src="/big_nose.jpg" alt="Большой нос">";

не сработает, из-за пересекающихся кавычек. Выходом будет либо обозначить каждую внутреннюю кавычку escape символом:

$stroka[0] = "<img src=\"/big_nose.jpg\" alt=\"Большой нос\">";

Либо же использовать внешние другие кавычки (ПХП понимает и " и ')

$stroka[0] = '<img src="/big_nose.jpg" alt="Большой нос">';

Конечно кавычки, можно убрать вообще, но это уже несоответствие спецификациям :-)

Карбофос
На сайте с 08.07.2005
Offline
28
#29

SiGiN, точно я как-то на автомате не подумал , что девушка могла незнать этого.

[Удален]
#30

SiGiN, я писал код под конкретные условия "выводить по случайному закону", а не "выводить перетасовав", ведь это разное :)

Ты очень верные вопросы для Mona заготовил, и если она на них ответит, то станет понятно как именно ей нужно.

Относительно "use strict" - да лишнее это в таком элементарном скрипте. Только левые МУ-МУ писать :)

Относительно перетасовки колоды (зацени):

@list = sort { return (1 - int rand(3)) } @list;

А это не боиться пустых строк в конце файла:

@list = sort { if ($b){return (1 - int rand(3))}else{return (-1)} } @list;

;)

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий