2017-03-21 6 views
1

を分割:複数の文字列は、複数のイメージを持つ私のデータベースには1つの文字列、すべてのソートに複数回

url/image-1.jpg|text 1# 
url/image-2.jpg|text 2# 
url/image-3.jpg|text 3# 

だけでなく、私は、alt属性を持つ各画像新しいimgタグのために必要です。ここでは、コードです:

<img src="url/image-1.jpg" alt="text 1"> 
<img src="url/image-2.jpg" alt="text 2"> 
<img src="url/image-3.jpg" alt="text 3"> 

私が爆発すると、ループのためにしようとしましたが、それはない作品。うまく

<?php 


// array of urls 
$urls = []; 


// add 3 urls to the array 
array_push($urls, "url/image-1.jpg|text 1#"); 
array_push($urls, "url/image-2.jpg|text 2#"); 
array_push($urls, "url/image-3.jpg|text 3#"); 

// array that contains the extracted values from urls 
$matches = []; 


// loop through all urls 
foreach($urls as $url){ 
    $match = null; 
    // try to match the pattern 
    preg_match("/\|(.*)#/", $url, $match); 
    // if it does match the pattern then add it to the matches array 
    if($match){ 
     array_push($matches, $match[1]); 
    } 
} 



// print all matches 
// outputs: 
// text 1 
// text 2 
// text 3 
foreach($matches as $match){ 
    echo $match . "<br>"; 
} 

?> 

答えて

0

私はスクリプトを変更して解決しました。今それは正常に動作します。

$parts = explode("#", $images);   
for($i = 0; $i < count($parts); $i++){ 
    $teile2 = explode("|", $teile[$i]);     
    for($y = 0; $y < count($teile2[0]); $y++){      
     echo '<img src="'.$urlAdresse.trim($urlImg).'" alt="'.trim($teile2[1]).'" />'."\n"; 

    } 
} 
0

私はあなたがこのように正規表現を使用することによってそれを解決することができますいくつかのコードに

$string="url/image-1.jpg|text 1# 
    url/image-2.jpg|text 2# 
    url/image-3.jpg|text 3#"; 

$imgs=explode("#", $string); 

foreach ($imgs as &$img) { 
    $image=explode("|", $img); 
    echo "<img src='".$image[0]."' alt='".$image[1]."'>"; 
} 
0

を共有したい爆発し使用することができ

$images = " 
url/image-1.jpg|text 1# 
url/image-2.jpg|text 2# 
url/image-3.jpg|text 3#"; 

$parts = explode("#", $images); 
for($i = 0; $i < count($parts); $i++){ 
    $parts2[$i] = explode("|", $parts[$i]); 
    for($y=0; $y < count($parts2[$i]); $y++){   

     echo '<img src="'.trim($parts2[$y]).'" alt="$part[0]" />';    
    } 
} 
0

を:あなたは二回

$str ="url/image-1.jpg|text 1# 
url/image-2.jpg|text 2# 
url/image-3.jpg|text 3#"; 

$str_row = explode('#',$str); 

for ($i=0; $i<count($str_row)-2; $i++){ 
    $parts = explode('|',$str_row[$i]); 
    echo '<img src="'.$parts[0] . " alt=" . $parts[1] .">"; 

}