|
|
|
| надо в $text все спец символы заменить на "_", но почему то у меня не работает:(
$text = "[под] землей";
$text = ereg_replace ("[_\.,?!\[\](){}]+","_",$text);
|
| |
|
|
|
|
|
|
|
для: P@Sol
(09.09.2005 в 17:13)
| | Странно, но у меня тоже не заработал. Переписал так:
<?php
$text = "[под] землей";
$text = preg_replace("/[_\.,?!\[\](){}]/","_",$text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: Artem S.
(09.09.2005 в 18:08)
| | так ясно...а как сделать так: заменить на "_" все, что не буквы и не цыфры? | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 15:06)
| |
<?
$text = preg_replace("/[^0-9a-zA-Z\-\xC0-\xFF&ёЁ]+/", "", $text);
$text = preg_replace("/[\-_]+/", "-", $text);
$text = preg_replace("/-+$/", "", $text);
|
нашел такой код (из "[ под ] * & # --- п+п-землей" получил "под-пп-землей")...не могли бы объяснить что тут происходит? | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 15:37)
| | Попробуй мой код:
<?
$text = preg_replace("/[_\.,\?!\[\]\(\){}]+/i","_",$text);
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(14.09.2005 в 16:13)
| | не все символы перечислил:) еще есть #%$^&*@ | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 15:37)
| | выражением $text = preg_replace("/[^0-9a-zA-Z\-\xC0-\xFF&ёЁ]+/", "", $text); вы удалили все спец. символы. Что не ясно? | |
|
|
|
|
|
|
|
для: Artem S.
(14.09.2005 в 16:16)
| | -\xC0-\xFF&ёЁ - что это такое??
и что происходит во второй и третьей строке? | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 16:17)
| | в третьей строке: если "-" в конце строки то его удалить. правильно я понял? | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 16:19)
| | Да причем если этих "-" будет один и больше то они удалятся все. | |
|
|
|
|
|
|
|
для: Евгений Петров
(14.09.2005 в 16:22)
| | а где это сказано? (про то что если их 5, то они удалятся?)
по логике если из 5 удалить один последний, то 4-ый символ станет последним и удалится и т.д.:) но может это еще и в коде отмечено? | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 16:24)
| | Логика у тебя железная. :) Просто там в конце после "-" стоит плюс который показывает что таких совпадений может быть один и более. | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 16:19)
| | >> -\xC0-\xFF&ёЁ - что это такое??
Это закодированные русские буквы. Любой символ имеет 16 код. Это он и есть
>> и что происходит во второй и третьей строке?
$text = preg_replace("/[\-_]+/", "-", $text)
Полседовательность из подчеркиваний, слеша и тире заменяется на один символ тире
$text = preg_replace("/-+$/", "", $text);
Последовательность из тире в конце строки удаляется.
Смысла в двух последний выражений я не вижу. | |
|
|
|
|
|
|
|
для: Artem S.
(14.09.2005 в 16:26)
| | если есть фраза "Я готов!" и из нее получить "я-готов", а не "я-готов-".
а вторую строку я сам пока не понял...
Добавлено
вторая строка, наверно чтобы "---" не было:) | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 15:06)
| | Ответ на первый вопрос
<?php
$text = preg_replace("/[^A-Za-zА-Яа-я0-9]/","_",$text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: P@Sol
(09.09.2005 в 17:13)
| | заменил
$text = preg_replace("/[^0-9a-zA-Z\-\xC0-\xFF&ёЁ]+/", "", $text);
|
$text = preg_replace("/[^A-Za-zА-Яа-я0-9]+/","",$text);
|
работать перестало | |
|
|
|
|
|
|
|
для: P@Sol
(14.09.2005 в 16:44)
| | А что не работает? У меня вроде работает, попробуй:
<?
$text = preg_replace("/[^ a-zа-я0-9]+/i","",$text);
?>
|
| |
|
|
|