使用变量设置后台URL-我做错了什么


Setting Background URL with Variable - what am I doing wrong?

所以在我的代码中$image是这样随机的:

$image = get_rand_img('images/featured_images/csgo/');

如果我回显$image(记住我已经在PHP括号内了),即:

echo'div id="featured-image">'
echo '<img src="/images/featured_images/dota/' . $image . '" alt="" />'
echo '</div>'

然后它就起作用了。

我真正想做的是,将这个图像分配给中的div

echo '<div id="featured-image" style="height: 267px; width: 292px">#
echo '<style="background:url('. $image .') "></style>'
echo '</div>'

这行不通。它绘制div,但不应用背景。我尝试过各种不同的东西,比如"

怎么了?

编辑

以下代码建议有效。

<?php
try {
    $conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
}
catch (PDOException $e) {
    echo $e->getMessage();
    echo 'Could not establish a connection to the database.';
}
$query = $conn->prepare('SELECT `articleid`,`title`  FROM `news_articles` WHERE  featured = 1 ORDER BY RAND() LIMIT 1');
$array = array(
    'N'
);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_COLUMN, 0);
foreach ($results as $row) {
}
$image = get_rand_img('images/featured_images/csgo/');
$title = $result['title'];
echo '<a href="index.php?viewarticle=1&articleid=' . $row . '">';?>
<div id="featured-image" style="height: 267px; width: 292px; background:url(/images/featured_images/csgo/<?php echo $image ?>)"></div>;
<?php
echo '</a>';
?>

谢谢大家!

这里有一些错误。

<style="background:url('. $image .') "></style>中的</style>标记将触发HTML源中的Stray-end标记"style"警告。

您还需要使用PHP标记和回显变量。

旁注:我怀疑您是否希望在这里使用2x <style>标记,而不是使用所有设置为内联的样式。

<div id="featured-image" style="height: 267px; width: 292px; background:url('<?php echo $image;?>')">

如果这不是你想要的,我会简单地删除我的答案。

编辑:根据OP关于它们在PHP内部的评论,使用和作为示例:

$image = "image.jpg";
echo '
<div id="featured-image" style="height: 267px; width: 292px; background:url('.$image.')">
</div>
';

编辑#2:还有这里的一些问题,因为我担心评论会永远持续下去。

你在这里使用的是两条路径:

$image = get_rand_img('images/featured_images/csgo/');

(/images/featured_images/<?php echo $image ?>)中,顺便说一句,你已经在这里使用PHP了,所以去掉那些<?php echo-?>

这里需要使用get_rand_img()函数的路径,只使用$image变量,而不是同时使用这两个路径。

旁注:很难说你想在这里使用哪条路径。

你真的有一条叫的路吗

images/featured_images/csgo/images/featured_images/-??

  • images/featured_images/csgo/??(没有像下面这样的斜线)
  • /images/featured_images/

只有你知道那是什么。所以我建议你试试

$image = get_rand_img('images/featured_images/csgo/');
$image = get_rand_img('images/featured_images/');

取决于要从哪个文件夹提取图像。

这个

echo '<a href="index.php?viewarticle=1&articleid=' . $row . '">';?>
<div id="featured-image" style="height: 267px; width: 292px; background:url(/images/featured_images/<?php echo $image ?>)"></div>;

应该给你一个错误。在$row . '">';之后有一个;?>,它将关闭您的语句和PHP。

所以就这么做吧:

echo '<a href="index.php?viewarticle=1&articleid=' . $row . '">
<div id="featured-image" style="height: 267px; width: 292px; background:url('.$image.');"></div>';

错误报告添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code

旁注:显示错误只能在暂存中进行,而不能在生产中进行。

您需要回显$image:

<style="background:url(<?php echo $image ?>) "></style>