2013-07-17 2 views
-3

У меня есть строка пример: «над-80 --- из-интернэшнл ---- посетителей-неимения к возвращению»PHP строка удалить несколько - для перезаписи URL

Как удалить мульти «- -»к„-“для записи URL к сожалению мой английский очень плохо

+0

Значит, вам нужно правило перезаписи для использования в .htaccess? Извините, меня смутил php-tag. –

+0

Вам нужно php-решение или пример htaccess? – Michael

+0

Неясно, требуется ли решение PHP или .htaccess. Дайте ответ для обоих, но лучше уточните. – anubhava

ответ

0

Попробуйте это:

$new = 'over-80---of-international----visitors-want-to-return'; 

do { 
    $old = $new; 
    $new = str_replace('--', '-', $old); 
} while($old != $new); 

изменений Этот цикл - до - до тех пор, пока ничего не осталось делать.

+0

ему нужно переписать правило, используя файл .htaccess –

+0

Woops, я упустил это. Сожалею. Но вопрос может быть немного яснее, так как все сейчас появляются с помощью php-решения. Почему у этого вопроса есть php-tag? –

+0

спасибо u каждый. он очень надеется – user2547441

5
$string = 'over-80---of-international----visitors-want-to-return'; 
$string = preg_replace('#-{2,}#', '-', $string); 
+0

спасибо u очень много – user2547441

+0

Это решение не работает, оно удаляет только одну тире на группу с несколькими тире. Вы останетесь со множеством тире! –

+2

Это неправда, это работает. Попробуйте. RegEx по умолчанию жадный, и только min задается равным 2, поэтому он будет делать то, что должен. – Michael

1

preg_replace должно работать:

$s = preg_replace('/-{2,}/', '-', "over-80---of-international----visitors-want-to-return"); 

Однако, если на самом деле OP ищет правила mod_rewrite в .htaccess, то это будет работать:

RewriteRule ^(.*?)(-)-+(.*)$ /$1$2$3 [L] 
-1

Вы должны использовать str-replace.

$string = "over-80---of-international----visitors-want-to-return"; 
$replaced = str_replace("--", "-", $string); 
+0

Требуется код файла htaccess –

+0

В вопросе ничего не говорится о файле htaccess. – ikromm

+1

Кроме того, ваше решение не удаляет все лишние тире! –