Как сжать последовательность одинаковых символов, заменив ее одним символом?

Jalart

Новичок
Как сжать последовательность одинаковых символов, заменив ее одним символом?

Есть строка, которая содержит много обратных слэшей. Количество слэшей может быть разным.
Например, строка вида

PHP:
"Char(900, \\\\\\\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\\\\\\')"
Надо заменить все слэши одним слэшем, то есть, привести к виду

PHP:
"Char(900, \'jhgjgfhfdyhkjn gfgfdfg\')"
Написал код вида

PHP:
<?php
$pattern = '/\/\//';
$replacement ="111";
$subject = "Char(900, \\\\\\\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\\\\\\')";
echo $subject;
echo '<br>';
$end = preg_replace($pattern, $replacement, $subject, -1);
echo $end;
?>
Но что на входе, что на выходе - все одно и то же.

Пробовал также stripslashes

PHP:
$subject = "Char(900, \\\\\\\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\\\\\\')";
stripslashes($subject);
echo $subject;
На выходе получил
PHP:
"Char(900, \\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\') strip"
Помогите, пожалуйста, подправить код.

Заранее спасибо.
 

440hz

php.ru
PHP:
$str ="Char(900, \\\\\\\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\\\\\\')"; 

print $str."\n";
print ereg_replace('[\\]+','\\',$str);
Код:
Char(900, \\\\\'jhgjgfhfdyhkjn gfgfdfg\\\\\')
Char(900, \'jhgjgfhfdyhkjn gfgfdfg\')
 

Panchous

Павел
в ФАКе есть очень хорошая статья по регулярным выражениям - рекомендую прочитать.
Пригодится сейчас и вбудущем.
 

Jalart

Новичок
Автор оригинала: SelenIT
Опечатка?
Наверное.

-~{}~ 10.04.06 10:14:

Автор оригинала: SiMM
Куда интереснее, откуда эти слэши взялись - тут скорее надо посылать читать http://phpfaq.ru/slashes
Есть одна старая CMS-система, разработчик которой занимается сейчас другими делами - скрипт после сбоя генерит кучу ошибок в файл error.log при анализе шаблона страницы. Удалось отловить переменную, которая принимает значение с кучей слэшей. Как временное решение - менять все слэши на один слэш.
Как постоянное - выяснить, что генерит эти слэши и прибить ошибку.
 

tolst

Новичок
регулярные выражения тебя вылечат...
только вот нужно лечить не ошибку, а предотвратить её возникновение.

PHP:
$string = ereg_replace(" +", " ", $string);
удаляет повторяющиеся пробелы на один пробел
 
Сверху