2016-10-01 117 views
0

我需要某段文字才能顯示是否顯示某個圖像。如果某個圖像正在顯示,則顯示某些文本PHP

目前我有本作的隨機背景圖片:

<?php 
// Time to do all the background stuffs 
    $bg = array('01.jpg', '02.jpg', '04.jpg', '970.jpg', '294.jpg', '096.jpg', '05.jpg', '08.jpg', '011.jpg', '012.jpg', '035.jpg', '045.jpg', '049.jpg', '066.jpg', '079.jpg', '096.jpg', '106.jpg', '173.jpg', '178.jpg', '205.jpg', '372.jpg', '500.jpg', '513.jpg', '682.jpg', '714.jpg', '860.jpg', '895.jpg', '914.jpg', '939.jpg', '966.jpg', '1025.jpg', '1074.jpg', '1123.jpg', '1162.jpg', '1499.jpg'); 
    // array of filenames 
    $i = rand(0, count($bg)-1); // generate random number size of the array 
    $selectedBg = "$bg[$i]"; // set variable equal to which random filename was chosen 
?> 

<style type="text/css"> 
@import 'https://fonts.googleapis.com/css?family=Yatra+One'; 
body{ 
background: #000000 url(images/<?php echo $selectedBg; ?>) no-repeat; 
background-position: center; 
} 

    </style> 

這是做後臺背景和CSS,然後我需要根據圖像顯示多個報價。

任何幫助表示讚賞

乾杯湯姆

+0

因此,創建報價的數組,做同樣的 –

+0

@u_mulder我如何確保它是否與正確的圖像同步? –

+0

您使用相同的索引'$ i'或關聯數組。 – andreas

回答

2

由於每個報價取決於圖像 - 你應該重建陣列:密鑰必須是文件名和值的報價。在此之後,你可以這樣做:

// Time to do all the background stuffs 
$bg = array(
    '01.jpg' => 'I have a dream', 
    '02.jpg' => 'Don\'t ask yourself', 
    '04.jpg' => 'Bond. James Bond', 
    // more 
); 
$rand_key = array_rand($bg); 
$rand_quote = $bg[$rand_key]; 
echo $rand_key, $rand_quote; 
0

解決方法一:

您需要創建一個數組作爲鍵值對,這樣就可以與文本一起commbine圖像。

語法:

array(
    key => value, 
    key2 => value2, 
    key3 => value3, 
    ... 
) 

最後一個數組元素後的逗號是可選的並且可以省略。這通常是爲單行數組完成的,即數組(1,2)優於數組(1,2)。另一方面,對於多行數組,通常使用尾隨逗號,因爲它最終可以更容易地添加新元素。

$image_text = array("light.png" => "Alternative Text for light.png", ...); 

而在顯示部分,您可以像這樣顯示數據。

<?php 
echo $image_text[$alt_text]; 
?> 

解決方法二:

一樣聰明像你一樣對bg可以給出的變量的名稱爲alt,你可以提供數組中的名字,你可以在img標籤打印你已經使用過。

Exapmle:

$alt=array('lilly','rose','apple'); 

隨着你的風格給了你可以加入這一行到該div的背景圖片。

<body> 
<?php echo $alt[1]; ?> 
</body> 

如果未顯示bg圖像,則會顯示alt。

1

也許你應該添加另一個數組:

$bgText = array("01.jpg" => "text you wanna display when 01.jpg is selected", ...); 
在要顯示的文字

然後:

<?= $bgText[$selectedBg] ?>