我想要得到這個如果語句如下: 如果第一個字符串位置是.png,然後從草垛獲得$ png1,但如果第一個字符串位置是.jpg,則獲取$從草垛JPG1,但如果.gif,而得到草垛$ GIF1,否則,如果他們沒有被發現,則字符串位置的.bmp因此獲得$ BMP1如果語句解析不正確
這是我嘗試過,但它不」噸正確解析:
<?php
// if first occurence is .png get $png1 needle from haystack
if (preg_match('#cid:([^"@]*)[email protected]([^"]*)#', $html_part))
{ $find = '#cid:([^"@]*)[email protected]([^"]*)#';
$replace1 = $png1;
$html_part = preg_replace($find, $replace, $html_part);
}
// if first occurence is .jpg get $jpg1 needle from haystack
elseif (preg_match('#cid:([^"@]*)[email protected]([^"]*)#', $html_part))
{ $find = '#cid:([^"@]*)[email protected]([^"]*)#';
$replace1 = $jpg1;
$html_part = preg_replace($find, $replace, $html_part);
}
// if first occurence is .gif then get $gif1 needle from haystack
elseif (preg_match('#cid:([^"@]*)[email protected]([^"]*)#', $html_part))
{ $find = '#cid:([^"@]*)[email protected]([^"]*)#';
$replace = $gif1;
$html_part = preg_replace($find, $replace, $html_part);
}
// if first occurence is .bmp then get $bmp1 needle from haystack
else
{ $find = '#cid:([^"@]*)[email protected]([^"]*)#';
$replace = $bmp1;
$html_part = preg_replace($find, $replace, $html_part);
}
?>
一個例子$html_part
,添加了用於顯示換行符,是:
<b>Bold Text.</b> <i>Italicized Text.</i> <u>Underlined Text.</u> Plain Unformatted Text.
<img width=183 height=183 id="Picture_x0020_3" src="cid:[email protected]"
alt="Description: Description: Description: cid:[email protected]">
<img width=153 height=145 id="Picture_x0020_2" src="cid:[email protected]"
alt="Description: Description: cid:[email protected]"><img width=182 height=123
id="Picture_x0020_1" src="cid:[email protected]"
alt="Description: Description: cid:[email protected]">`
'但它不能正確解析:'任何具體的錯誤?你在抓取未知的外部HTML嗎? – 2012-01-31 21:11:16
此代碼看起來不必要的複雜。你能發表你的意圖嗎? – Halcyon 2012-01-31 21:13:54
保羅,是的,我抓住外部的HTML,但它是已知的某些規則已放到用戶將導致格式出現如預期的腳本。問題是它沒有得到正確的圖像,它只是緊跟着下面的代碼塊,就像上面發佈的代碼塊,除了一切都是爲了例如$ png2,$ jpg2等用於第二張圖片。上面的代碼是第一張圖片/ – 2012-01-31 21:30:12