回答
試試這個:
$new = 'over-80---of-international----visitors-want-to-return';
do {
$old = $new;
$new = str_replace('--', '-', $old);
} while($old != $new);
這個循環的變化 - 到 - 直到有沒什麼可做。
他需要使用.htaccess文件重寫規則 – 2013-07-17 07:01:32
Woops,我忽略了這一點。抱歉。但問題可能會更清楚一些,因爲現在每個人都在用php解決方案彈出。爲什麼這個問題無論如何都有一個php-tag? –
感謝你的每一個。它非常希望 – user2547441
$string = 'over-80---of-international----visitors-want-to-return';
$string = preg_replace('#-{2,}#', '-', $string);
非常感謝你 – user2547441
該解決方案不起作用,它只會刪除每個多短劃線組中的一個破折號。你會留下很多破折號! –
這是不正確的,這有效。試試看。 RegEx在默認情況下是貪婪的,只有min是2,所以它會做它應該做的。 – Michael
的preg_replace應該工作:
$s = preg_replace('/-{2,}/', '-', "over-80---of-international----visitors-want-to-return");
但是如果確實是OP在.htaccess中尋找mod_rewrite的規則,那麼這將工作:
RewriteRule ^(.*?)(-)-+(.*)$ /$1$2$3 [L]
您需要使用str-replace。
$string = "over-80---of-international----visitors-want-to-return";
$replaced = str_replace("--", "-", $string);
- 1. htaccess重寫 - 從url中刪除字符
- 2. 重寫URL以刪除某些字符
- 3. 重寫URL nginx的刪除連字符
- 4. IIS重寫URL刪除重複的查詢字符串
- 5. php:從字符串中刪除URL
- 6. URL重寫php查詢字符串
- 7. 的.htaccess URL重寫刪除查詢字符串鍵
- 8. htaccess重寫Cond刪除URL中的字符串
- 9. 重寫htaccess文件的URL - 刪除查詢字符串
- 10. 刪除文件擴展名後重寫url查詢字符串
- 11. 用mod_rewrite重寫舊URL後刪除查詢字符串
- 12. 通過mod重寫從url中刪除查詢字符串
- 13. Lighttpd的URL重寫刪除查詢字符串變量
- 14. php刪除「 - 」字符串重複項
- 15. 刪除PHP擴展並用.htaccess重寫查詢字符串
- 16. .htaccess重寫url並刪除.php
- 17. [PHP]刪除字符串
- 18. URL重寫 - 刪除URL如果結尾匹配特定字符串
- 19. PHP的MySQL URL重寫字符串特殊字符作爲
- 20. 使用javascript從字符串(URL)中刪除子字符串(URL)
- 21. 重寫URL,刪除類別字
- 22. htaccess的URL重定向/重寫和刪除查詢字符串(不保留)
- 23. PHP在字符串中刪除字符
- 24. URL重寫 - 刪除散列
- 25. 刪除/重寫從URL
- 26. htaccess重寫URL刪除
- 27. Apache重寫。如果URL包含字符串,則重寫爲URL
- 28. php刪除字符串的一部分
- 29. PHP - Sanitize字符串刪除數字
- 30. 在java字符串中刪除url「
因此,您需要一個在.htaccess中使用的重寫規則?對不起,我被php-tag弄糊塗了。 –
你需要一個php解決方案或一個htaccess的例子嗎? – Michael
不清楚PHP解決方案是否需要或.htaccess之一。已經給出了兩個答案,但你更好地澄清。 – anubhava