PHP数组元素未在引导程序中正确输入

时间:2019-02-22 05:38:30

标签: php arrays twitter-bootstrap carousel

这些是我想插入到引导轮播中的图像链接:

function display_slides() {
    $count = 10;
    $iter = 0;
    $image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];
    while ($iter < $count) {
        if ($iter == 0) {
            $output .='
<div class="carousel-item active">
    <img class="d-block w-100" src="https://i.imgur.com/dCS4tQk.jpg" alt="Background Image">
    <div class="container">
        <div class="carousel-caption">
            <h2>Header</h2>
            <p>Sample text</p>
        </div>
    </div>
</div>
';
        } else {
// print_r($image_links[$iter]);
            $output .='
<div class="carousel-item">
    <img class="d-block w-100 src=' . $image_links[$iter] . ' alt="Background Image">
         <div class="container">
        <div class="carousel-caption">
            <h2>Header</h2>
            <p>Sample text</p>
        </div>
    </div>
</div>
';
        }
        $iter ++;
    }
    return $output;
}

我想将$ image_links中的链接输入到img标签的src中。第一张幻灯片(其中的链接采用硬编码)有效,其余幻灯片无效。 Link to full php file 我在这里做什么错了?

4 个答案:

答案 0 :(得分:1)

似乎您忘记了关闭class属性。 您的代码

<img class="d-block w-100 src=' . $image_links[$iter] . ' alt="Background Image">

工作代码

<img class="d-block w-100" src="'.$image_links[$iter].'" alt="Background Image">

答案 1 :(得分:1)

兄弟。您在img标签class="d-block w-100

中缺少右引号

此代码将非常适合您。.

$image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];

    for ($i=0; $i <count($image_links) ; $i++) { 
        // echo $image_links[$i];exit;
        echo '<div class="carousel-item">
                <img class="d-block w-100" src="'.$image_links[$i].'" alt="Background Image">
                     <div class="container">
                    <div class="carousel-caption">
                        <h2>Header</h2>
                        <p>Sample text</p>
                    </div>
                </div>
            </div>';
    }

答案 2 :(得分:1)

我整理了一下代码,并使用了foreach循环,而不是使用迭代器。我强烈建议每当您要访问数组时都使用一个foreach循环,因为它通常更容易读取。正如其他人所建议的那样,您的class属性上也缺少引号,该引号也已在下面修复。

使用诸如count和iterator之类的变量是不必要的,一旦进入多维数组,可能变得难以阅读。

 function display_slides() {
    $image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];
    $output .='
    <div class="carousel-item active">
    <img class="d-block w-100" src="https://i.imgur.com/dCS4tQk.jpg" alt="Background Image">
    <div class="container">
    <div class="carousel-caption">
    <h2>Header</h2>
    <p>Sample text</p>
    </div>
    </div>
    </div>
    ';
     foreach ($image_links as $image ) {
         $output .='
         <div class="carousel-item">
         <img class="d-block w-100 src='.$image.'" alt="Background Image">
         <div class="container">
         <div class="carousel-caption">
         <h2>Header</h2>
         <p>Sample text</p>
         </div>
         </div>
         </div>
        ';
        }
    }
    return $output;

}

答案 3 :(得分:0)

我,因为存在一些HTML语法错误,您未获得src的引号(“)。它的内容如下

} else {
      $output .='
      <div class="carousel-item">
        <img style="border:1px solid #0f0" class="d-block w-100 src="'.$image_links[$iter].'" alt="Background Image"> // note the quotes added on src=""

希望清楚。

快乐的编码。