ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

18.06.2009, 12:15
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
тест
1. Выбрать из таблицы базы данных MySQL случайную запись несколькими способами.
Есть одно важное ограничение – диапазон id НЕ является непрерывной числовой последовательностью!
Структура таблицы:
CREATE TABLE `rand_test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL default '',
`ispub` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Пояснения:
id - первичный ключ
name - информация ключа
ispub - признак публикации (1- запись участвует в выборке, 0-нет)
2. Вывести древовидную структуру, основываясь на данных из таблицы MySQL.
Скрипт должен отформатировать текст используя шаблон, хранящийся отдельно (Условие обязательно).
Структура таблицы:
CREATE TABLE `tree` (
`id` int(11) NOT NULL auto_increment,
`pid` int(11) NOT NULL default '0',
`name` varchar(50) NOT NULL default '',
`ispub` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `pid` (`pid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Пояснения:
id - первичный ключ
pid - ключ «родительского» элемента (0- для корневого)
name - информация ключа
ispub - признак публикации (1- запись учитывается, 0-запись не учитывается)
Шаблон:
Для упрощения задачи шаблоном принимается асоциативный массив, используемый скриптом и хранящий описанием форматирования вывода дерева.
$template=array(
'body' =>'<ul>{body}</ul>',
'node' =>'<li>{node} <ul>{sub}</ul>',
'item' =>'<li>{item}',
);
В итоге, вы должны получить:
1. PHP скрипт, выводяший древовидную структуру из БД
2. Иметь возможность полностью изменить форматирование текста, не изменяя кода самого скрипта.
Нужно очень быстро решить задание. Стукните в асю 394820553 дам денег
|
|
|

21.06.2009, 16:35
|
|
Участник форума
Регистрация: 26.07.2008
Сообщений: 267
Провел на форуме: 1343031
Репутация:
184
|
|
Подскажите мини-скрипт пожалуйста, который бы в файле с кучей строк вида:
123 67 123 342132 12312 123 3bitch2:hello:hello5:4234
в первом сегменте - до первого ":" - удалял бы все пробелы?
|
|
|

21.06.2009, 16:54
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
$a = explode(':',"123 67 123 342132 12312 123 3bitch2:hello:hello5:4234");
$b = str_replace(' ','',$a[0]);
echo $b;
|
|
|

21.06.2009, 19:21
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от Krist_ALL
$a = explode(':',"123 67 123 342132 12312 123 3bitch2:hello:hello5:4234");
$b = str_replace(' ','',$a[0]);
echo $b;
Это тема Perl, а не PHP
Как нужно правилньо файл открыть, чтобы она заработала?
В Perl нету explode, а есть split
Регулярка будет вроде - $text =~ s/ //g;
Последний раз редактировалось FireFenix; 21.06.2009 в 19:35..
|
|
|

21.06.2009, 19:31
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Попробуй так
Код:
open BLAH, '<', 'file.txt' or die 'can't read';
while(<BLAH>)
{
chomp;
my ($a, $b) = split /:/, $_;
$a =~ s/\D//g; $b =~ s/ //g;
print $a.":".$b."\n";
}
close BLAH;
|
|
|

21.06.2009, 19:45
|
|
Участник форума
Регистрация: 26.07.2008
Сообщений: 267
Провел на форуме: 1343031
Репутация:
184
|
|
Kaimi
Немного изменил под свой случай и помогло. Спасибо!
|
|
|

21.06.2009, 21:56
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
Если надо удалить все пробелы, то регулярное выражение $b =~ s/ //g;
должно выглядеть так:
|
|
|

21.06.2009, 22:03
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Если надо удалить все пробелы, то регулярное выражение $b =~ s/ //g;
должно выглядеть так:
Почему?
|
|
|

21.06.2009, 22:16
|
|
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме: 9098076
Репутация:
4303
|
|
насколько я помню то в \s помимо пробела ещё входят символ табуляции, перевода строки и тп символы
так что примре Kaimi наиболее правильный
ЗЫ
\s
Matches any whitespace character; this is equivalent to the class [ \t\n\r\f\v].
|
|
|

22.06.2009, 09:39
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
Сообщение от Spyder
насколько я помню то в \s помимо пробела ещё входят символ табуляции, перевода строки и тп символы
так что примре Kaimi наиболее правильный
ЗЫ
\s
Matches any whitespace character; this is equivalent to the class [ \t\n\r\f\v].
Буду иметь в виду. :-)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|