2014-07-08 56 views
1
$string = 'folder1:image1.jpg|folder2:image2.jpg|folder3:image3.jpg'; 

我要爆炸的字符串得到以下結果:腓 - 爆炸的字符串有兩個分隔符

<img src="/folder1/image1.jpg" /> 
<img src="/folder2/image2.jpg" /> 
<img src="/folder3/image3.jpg" /> 

這不是一個定界符一個問題,但我有兩個分隔符,不知道如何做到這一點:

$imagedata = explode("|", $string); 
foreach($imagedata as $image) { 
echo "$image<br />"; 
} 

回答

0

使用本:

$string = 'folder1:image1.jpg|folder2:image2.jpg|folder3:image3.jpg'; 
$imagedata = explode("|", $string); 
foreach($imagedata as $image) { 
    $img=explode(":", $image); 
    echo '<img src="' . $img[0] . '/' . $img[1] . '" /><br />'; 
} 
5

你不需要兩個分隔符,你可以做一個str_replace後你explode

$imagedata = explode("|", $string); 
foreach($imagedata as $image) { 
    echo "<img src='/".str_replace(":","/",$image) . "'/>"; 
} 
+0

甚至是tter ['strtr()'](http://php.net/function.strtr)。 – Fleshgrinder

0

也許你可以用2的foreach嘗試...

$string = 'folder1:image1.jpg|folder2:image2.jpg|folder3:image3.jpg'; 

$imagedata = explode("|", $string); 
foreach($imagedata as $folder) { 
    $imageFolders = explode(":", $folder); 
    foreach ($imageFolders as $image) { 
     echo "$image<br />"; 
    } 
} 

那麼也許僅僅需要將其保存在其他變量...

0

如果您想保持它(但不清楚):

$imagedata = '<img src="/' . implode("\" />\n<img src=\"", str_replace(':', '/', explode("|", $string))) . '" />';