Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: 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
помогите, плз...
-
s/^(\\w+)\\s/\\$1<\\/a>/
-
аа... немножко поконкретнее можно. что мне с этим регулярным выражением делать?? preg_?
-
[p]preg_replace[/p]
или
[p]substr[/p] + [p]str_replace[/p]
-
substr не пойдет... там длина разная у слов...
-
door дык [p]strstr[/p] добавить надобно
-
получается вот:
$contents = file("путь");
foreach($contents as $line) {
print preg_replace ("/^(\\w+)\\s/","$1 ",$line);
}
но есть два момента,
1. в первом слове иногда встречается знак "-" и это слово не обрабатывается из-за него
2. надо переводить ссылку $1 в нижний регистр...
1 попробую вторым вариантом решить... через strstr... только она показывает строчку после какого-то символа, а надо перед...
-
door
$line = "fnvlsdjf-dsdf jkdlfvn";
echo preg_replace("/^([-a-z]+)\\s.*/ie","strtolower(str_replace(\\"\\\\1\\",\\"\\\\1\\",\\"\\\\1\\"))",$line);
AliMamed
Теме в регулярных выражениях место, IMHO
-
в такой конструкции глотается все после 1го слова... :( и в нижний регистр переводить надо только слово в самой ссылке, а не то с которого она идет...
-
door
[off]неужели додумать сложно было???[/off]
echo preg_replace("/^([-a-z]+)(\\s.*)/ie","str_replace(\\"\\\\1\\",\\"\\".strtolower(\\"\\\\1\\").\\"\\\\2\\",\\"\\\\1\\")",$line);
[off]чисто из-за любви к искусству...
учись правильно мысль формулировать, коли просишь, последний пост с русского на русский перевести сложно, не то что РВ написать...[/off]
-
я постараюсь ;) спасибо!