2016-10-01 65 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] ?>