[英]How to replace whitespaces with dashes
我的想法是刪除特殊字符和html代碼,並將空格替換為破折號,讓我們逐步進行操作
$text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>";
現在,我希望輸出成為“ Hello-world-its-me-and-love-you
已經厭倦了此代碼,以刪除特殊字符和html代碼
$array = array();
$array[0] = "/<.+?>/";
$array[1] = "/[^a-zA-Z0-9 ]/";
$textout= preg_replace($array,"",$text);
現在輸出將像是Hello world its me and love you
所以有什么辦法可以修改此代碼,以便文本輸出變得精確,因為我確實需要Hello-world-its-me-and-love-you
〜謝謝
您最好使用strip_tags
為您擺脫html標記,然后使用正則表達式刪除所有非字母數字(或非空格)字符。 然后,您可以簡單地使用str_replace
將空格轉換為連字符。 注意,我還添加了一行以將多個空格折疊到一個空格中,因為這是您在示例中所做的。 否則,您將獲得world--its-me
而不是world-its-me
。
<?php
$text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>";
$text = strip_tags($text);
$text = preg_replace('/[^a-zA-Z0-9 ]/', '', $text);
//this is if you want to collapse multiple spaces to one
$text = str_replace (' ', ' ', $text);
$text = str_replace (' ', '-', $text);
?>
您可以添加
$textout = str_replace(' ', '-', $textout);
在最后一行之后,用連字符替換空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.