[英]Php string replace for symbols and special character
我創建了一個論壇管理頁面,管理員可以立即發送所有注冊成員的信息消息,並使用此@username@
或@useremail@
提及他們的姓名或電子郵件。 現在,我嘗試的是替換@username@
如果消息正文包含它或用於提及$_SESSION['username']
任何符號,然后放出正在查看消息的當前用戶的用戶名。
我嘗試這樣做是可行的,但無法一次檢查其他內容,例如電子郵件和全名,或者一條消息中包含2個不同的符號
第一次嘗試
$match_user = str_replace("@username@",$_SESSION['username'],$string);
我在這里在線搜索,但無法獲得我需要的確切信息,所以我嘗試這樣做,但是出錯了很多,請有人幫我嗎?
第二次嘗試
<?php
//I use this function to check if word contain in array
function contains($string, array $array) {
$count = 0;
foreach($array as $value) {
if (false !== stripos($string,$value)) {
++$count;
};
}
return $count == count($array);
}
$string = Welcome @username@ we have sent you new info message at @useremail@;
$array = array('@username@', '@useremail@');
if(contains($string, $array)) {
if($array == '@username@'){
$match_user = str_replace("@username@",$_SESSION['username'],$string);
}else if($array == '@useremail@'){
$match_user = str_replace("@useremail@",$useremail,$string);
}else if($array == '@fname@'){
$match_user = str_replace("@fname@",$userfullname,$string);
}else{
//....
}
}
?>
在您的情況下,可以在字符串中使用多個替換。
范例:
$string = Welcome @username@ we have sent you new info message at @useremail@;
$array = array('@username@', '@useremail@');
$wordInString = array('@username@','@useremail@','@fname@');
$replaceInString = array($_SESSION['username'] ,$useremail,$userfullname);
$match_user = str_replace($wordInString, $replaceInString, $string);
echo $match_user;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.