2016-02-09 67 views
0

我想更改一些php代碼以從指定目錄中選擇一個隨機圖像,而不是當前選擇的同一個默認圖像。這是一段代碼,目前選擇默認的備用圖片 - 如果沒有可用的圖像:從文件夾中選擇一個隨機圖像,而不是相同的默認佔位符圖像

<?php 
 
\t $postCover = ''; 
 

 
\t if ($post->hasImage()) { 
 
\t \t $postCover = $post->getImage($photoSize); 
 
\t } 
 

 
\t if (!$post->hasImage() && $params->get('photo_legacy', true)) { 
 
\t \t $postCover = $post->getContentImage(); 
 
\t } 
 

 
\t if (!$postCover && $params->get('show_photo_placeholder', false)) { 
 
\t \t $postCover = $post->getImage($photoSize, true); 
 
\t } 
 
\t ?> 
 

 
\t <?php if ($postCover) { ?> 
 
\t <div class="eb-mod-thumb<?php if ($photoAlignment) { echo " is-" . $photoAlignment; } ?> <?php if (isset($photoLayout->full) && $photoLayout->full) { echo "is-full"; } ?>"> 
 
\t \t <?php if (isset($photoLayout->crop) && $photoLayout->crop) { ?> 
 
      <a href="<?php echo $post->getPermalink();?>" class="eb-mod-image-cover" 
 
       style=" 
 
        background-image: url('<?php echo $postCover;?>'); 
 
        <?php if (isset($photoLayout->full) && $photoLayout->full) { ?> 
 
        width: 100%; 
 
        <?php } else { ?> 
 
        width: <?php echo $photoLayout->width;?>px; 
 
        <?php } ?> 
 
        height: <?php echo $photoLayout->height;?>px;" 
 
      ></a> 
 
\t \t <?php } else { ?> 
 
      <a href="<?php echo $post->getPermalink();?>" class="eb-mod-image" 
 
       style=" 
 
        <?php if (isset($photoLayout->full) && $photoLayout->full) { ?> 
 
        width: 100%; 
 
        <?php } else { ?> 
 
        width: <?php echo (isset($photoLayout->width)) ? $photoLayout->width : '260';?>px; 
 
        <?php } ?>" 
 
      > 
 
       <img src="<?php echo $postCover;?>" alt="<?php echo $post->title;?>" /> 
 
      </a> 
 
\t \t <?php } ?> 
 
\t </div> 
 
<?php } ?>

我覺得這是此行中我需要改變:

<img src="<?php echo $postCover;?>" alt="<?php echo $post->title;?>" /> 

我在這裏找到了這個解決方案:PHP pull random image from folder

<?php 
 

 
$dir = "images/"; 
 
$images = scandir($dir); 
 
$i = rand(2, sizeof($images)-1); 
 
?> <img src="images/<?php echo $images[$i]; ?>" alt="" />

這似乎是能夠做我想做的,但我不知道該如何在我提供了(沒有PHP的經驗,但在努力學習)的代碼合併它(或地方)。

任何人都可以幫助我嗎?

親切的問候

梅爾

+0

嗨FareedMN,我想申請這個(謝謝),但我不能得到它的工作。我創建了一個名爲newimage的文件夾,並在其中放置了一些隨機圖像,然後在我的代碼中添加了以下內容: $ path ='/ images/rsceb/260x150/modules/mod_responsive_scroller_for_easyblog/assets/images/fallback.jpg「; if (stristr($ postCover,$ path)!== false){$ dir =「images/newimage /」; $ images = scandir($ dir); $ i = rand(2,sizeof($ images)-1); $ postCover =「images /".$ images [$ i];} 但它只是顯示空白圖像上方的代碼 – Malc

回答

0

假設鏈接到您的默認圖像:/path/to/default_imge.jpg

所以的人誰不喜歡創建一個小的解決方案這一團糟是:

..... 

if (!$postCover && $params->get('show_photo_placeholder', false)) { 
       $postCover = $post->getImage($photoSize, true); 
      } 
      ?> 
// New Code Starts 

$path='/path/to/default_imge.jpg'; 
if(stristr($postCover,$path) !==false){ 
$dir = "images/"; 
$images = scandir($dir); 
$i = rand(2, sizeof($images)-1); 
$postCover="images/".$images[$i]; 
} 

// New Code Ends 

      <?php if ($postCover) { ?> 
....... 

在這種情況下,你可以回到正常的行爲只是移除新代碼。

+0

嗨FareedMN,我想申請這個(謝謝),但我無法得到它的工作。一個名爲newimage的文件夾並在其中放置了一些隨機圖像,然後在我的代碼中添加了以下內容: – Malc

+0

請仔細檢查您的目錄和默認圖像的路徑....獲取正確路徑可能非常棘手Malc – FareedMN

0

這不會回答你的問題,但這會幫助你學習PHP/HTML 你混淆了HTML和PHP的方式,使代碼不可讀。

在地方這樣做的:

if ($var) { ?> <div>Some HTML</div> <?php } 
else { ?> <div>Some other HTML</div> <?php } ?> 

這樣做:

if($var){ 
    echo "<div>Some HTML</div>"; 
} 
else{ 
    echo "<div>Some other HTML</div>"; 
} 

這是一個常見的初學者的錯誤,這使得它更難以學習編碼,因爲它「混淆」代碼。 這將使你的代碼更容易理解你和我們:)

相關問題