Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: door от 24 Сентября 2003, 14:28:33

Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 14:28:33
Читаю я файл, вывожу его содержимое посточно:

$contents = file("путь");
foreach($contents as $line) {
echo "".$line."
\\n";
}

из файла выводится текст:

1word 123, 87634, 58098, 4534x098
2word 345, 34534, 678098, 455674x0345
3word 34534, 3334, 54568, 43454x0945

как сделать так, что бы из первого слова в строке (word) формировалась ссылка:

1word 123, 87634, 58098, 4534x098
1word 345, 34534, 678098, 455674x0345
1word 34534, 3334, 54568, 43454x0945

помогите, плз...
Название: Генерирование ссылок из первого слова в строке...
Отправлено: Phoinix от 24 Сентября 2003, 14:42:26
s/^(\\w+)\\s/\\$1<\\/a>/
Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 14:59:37
аа... немножко поконкретнее можно. что мне с этим регулярным выражением делать?? preg_?
Название: Генерирование ссылок из первого слова в строке...
Отправлено: AliMamed от 24 Сентября 2003, 15:38:43
[p]preg_replace[/p]
или
[p]substr[/p] + [p]str_replace[/p]
Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 16:05:30
substr не пойдет...  там длина разная у слов...
Название: Генерирование ссылок из первого слова в строке...
Отправлено: AliMamed от 24 Сентября 2003, 16:36:29
door дык [p]strstr[/p] добавить надобно
Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 16:52:54
получается вот:

$contents = file("путь");
foreach($contents as $line) {
print preg_replace ("/^(\\w+)\\s/","
$1 ",$line);
}

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

1 попробую вторым вариантом решить... через strstr... только она показывает строчку после какого-то символа, а надо перед...
Название: Генерирование ссылок из первого слова в строке...
Отправлено: Yukko от 24 Сентября 2003, 17:23:14
door
$line = "fnvlsdjf-dsdf jkdlfvn";
echo preg_replace("/^([-a-z]+)\\s.*/ie","strtolower(str_replace(\\"\\\\1\\",\\"\\\\1\\",\\"\\\\1\\"))",$line);

AliMamed
Теме в регулярных выражениях место, IMHO
Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 17:34:45
в такой конструкции глотается все после 1го слова... :( и в нижний регистр переводить надо только слово в самой ссылке, а не то с которого она идет...
Название: Генерирование ссылок из первого слова в строке...
Отправлено: Yukko от 24 Сентября 2003, 17:48:44
door
[off]неужели додумать сложно было???[/off]
echo preg_replace("/^([-a-z]+)(\\s.*)/ie","str_replace(\\"\\\\1\\",\\"\\".strtolower(\\"\\\\1\\").\\"\\\\2\\",\\"\\\\1\\")",$line);

[off]чисто из-за любви к искусству...
учись правильно мысль формулировать, коли просишь, последний пост с русского на русский перевести сложно, не то что РВ написать...[/off]
Название: Генерирование ссылок из первого слова в строке...
Отправлено: door от 24 Сентября 2003, 17:54:07
я постараюсь ;) спасибо!