Здравствуйте, задача такая: найти в строке $str все символы "*". сейчас: $str = "abcd*e fgh***h ijk*lm*o**p"; нужно получить: $str = "abcd*e fgh*h ijk*lm*o*p"; //т.е. чтоб где их несколько, одна оставалась. пробовал решать так: $str = preg_replace("/\*{2,}/","",$str); //шаблон по идее должен значить "где встречается больше одной * подряд //то стираем" где же я накосячил..
$str = preg_replace("/\*+/","",$str); //так работает но не оставляет ни одного.. как количество правильно задать от двух?
попробовал, но похоже так функция меняет не "*+" на "*" а заменяет "*" на "*" делаю так: $str = preg_replace("/\*+/","",$str); //и тогда "*" не остается ни одной во всей строке.. а нужно менять любое //количество на одну "*"
Enzo_brn PHP: <?php $str = "abcd*e fgh***h ijk*lm*o**p"; $str = preg_replace('/\*+/', '*', $str); echo $str; ?> выводит abcd*e fgh*h ijk*lm*o*p. что ещё не так?
Может функция у меня из-за цикла не работает.. PHP: $input = fopen('input.txt','a'); $tmp = fopen("text.txt",r); while (!feof($tmp)) { $str = fgetss($tmp,2); //.. //тут еще много всего //.. $str = preg_replace('/\*+/', '*', $str); echo $str; //выводит текст но "*" там не поубавилось.. fwrite($input,$str); fclose($tmp); fclose($input); может стоит заново считать из файла без цикла и тогда заработает?