我一直在試圖完成這個幾天。我在每個帖子中都有一個描述,它們將佔位符手動放置在我想要替換相應圖像的地方。例如:
This is the description shortened...
[image]
[image]
Description starts again with a new paragraph continuing...
佔位符是[image]。隨着每個新帖子上傳多張圖片,每張帖子可能會與1-10張圖片有所不同,因此會放置不定數量的[圖片]佔位符。我有一個功能,可以將所有相關圖像傳送到該帖子並計算出有多少圖像。
這是我到目前爲止的代碼,但是最後兩個佔位符[image]它顯示第一個相關圖像兩次,然後循環並再次顯示描述,這次用第二個圖像替換兩個[圖片]佔位符。
<?php
foreach ($photos as $picture) {
$count = count($picture);
for($i = 1; $i<= $count; $i++) {
$image = $picture['filename'];
$replace = "[image]";
$image_path = '../../content_management/image_upload/';
$placeholders = array("$replace");
$image_location = array('<a class="fancybox" href="' . $image_path . '' . $image . '" data-fancybox-group="gallery"><img src="' . $image_path . '' . $image . '" /></a>');
$rawstring = $photo_article['description'];
$new_string = $rawstring;
$new_string = str_replace($placeholders, $image_location, $new_string, $i);
echo $new_string;
}
}
?>
什麼輸出結果是:你循環
This is the description shortened...
Image1.jpg
Image1.jpg
Description starts again with a new paragraph continuing...
This is the description shortened...
Image2.jpg
Image2.jpg
Description starts again with a new paragraph continuing...
你的問題很可能是'$ I '在str_replace調用中,應該是1.但是使用'str_replace'無論如何是笨拙的。考慮'preg_replace_callback'。 – mario 2013-03-22 02:18:30
如果我將$ i從str_replace()中取出;它現在使輸出翻倍。我會嘗試使用preg_replace_callback – tunedin 2013-03-22 02:26:35