2015-08-10 2 views
0

У меня есть следующая строка:PHP заменить строку между

$string = '<img id="Afbeelding_x0020_1" src="cid:[email protected]" alt="logo" height="39" border="0" width="125">'; 

И я хочу, чтобы заменить все между src="cid: и " к нормальному Img URL, поэтому она становится так:

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

Все до и после необходимо сохранить, потому что это целое сообщение, поэтому также важно заменить только src="cid:[email protected]"

I ha пробовал это, но это не делает ничего:

$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; 

У меня есть этот код из: Replacing text between two limts

$imgUrl в настоящее время строить correcly но preg_replace() ничего не делает.

Любой, кто знает решение? Заранее спасибо!!!

+1

здесь '\ src' слэш s пространство. напишите 'src = ...' – splash58

+0

, если вы имеете дело с данными HTML/XML, как насчет использования парсера DOM ..? – n00dl3

+0

@JuniusRendel Это не XML-данные, чистый HTML –

ответ

0

решаемые его, используя этот код:

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; 
} 
Смежные вопросы