繁体   English   中英

PHP替换字符串之间

[英]PHP replace string between

我有以下字符串:

$string = '<img id="Afbeelding_x0020_1" src="cid:image001.png@01D0D37B.5E4E6AE0" alt="logo" height="39" border="0" width="125">';

我想将src="cid:"之间的所有内容替换为普通的img网址,因此它变成这样:

$string = '<img id="Afbeelding_x0020_1" src="image.png" alt="logo" height="39" border="0" width="125">';

必须保留前后的所有内容,因为它是一条完整的消息,因此仅在src="cid:REPLACE@ID"之间进行替换也很重要

我已经尝试过了,但这无能为力:

$query = "SELECT * FROM tickets WHERE id='".$ticketID."'";
            $con = $GLOBALS['db_con']->query($query);
            $rd = $con->fetch_assoc();
            if(strpos($rd['message'],'src="cid:') !== false){ $bodyImage = extract_unit($rd['message'], 'src="cid:', '@'); }
            $imgUrl = 'src="' . $GLOBALS['site_info']['url'] . '/tickets/' . $ticketID . '/' . $bodyImage . '"';
            $start = '\src="cid:';
            $end  = '\"';
            $result = preg_replace('#('.$start.')(.*)('.$end.')#si', $imgUrl, $rd['message']);
            return $result;

我有以下这段代码: 在两行之间替换文本

$imgUrl正在正确构建,但是preg_replace()没有做任何事情。

有谁知道解决方案吗? 提前致谢!!!

通过使用以下代码解决了它:

function replace_ticketImage($msg,$ticketID,$replyID){
    if(strpos($msg,'src="cid:') !== false){
        $bodyString = extract_unit($msg, 'src="cid:', '"');
        $bodyImage = extract_unit($msg, 'src="cid:', '@');
        if($replyID < 1){
            $imgUrl = $GLOBALS['site_info']['url'] . '/attachments/tickets/' . $ticketID . '/' . $bodyImage;
        } else {
            $imgUrl = $GLOBALS['site_info']['url'] . '/attachments/tickets/' . $ticketID . '/' . $replyID . '/' . $bodyImage;
        }
        $result = preg_replace('/cid:'.$bodyString.'/', $imgUrl, $msg);
    } else {
        $result = $msg;
    }
    return $result;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM