簡體   English   中英

php字符串替換符號和特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM