Не удалось найти синтаксическую ошибку PHP с помощью echo для создания кода amp-html - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь отобразить некоторый код amp-html, используя PHP

<?php
echo "<section>";
echo "<h3>$title[$i]</h3>";
echo "<amp-video controls width="560" height="315" layout="responsive">";
echo "<source src="https: //example.com/videos/";
    echo $filename[$i];
    echo "_HD.mp4 type="video / mp4 / > ";
    echo " < sourcesrc = "https://example.com/videos/";
    echo $filename[$i];
    echo '"__HD.webm" type="video/webm"/>';
    echo "<div fallback><p>This browser does not support the video element.</p></div>";
    echo "</amp-video>";
    echo "</section>";
?>

Мне не удалось найти синтаксическую ошибку, что я пропустил? Есть ли более простой способ, чем использовать echo .?

Обновление : Я отредактировал код в соответствии с предложениями, но он по-прежнему выбрасывает пустую страницу: Вот полный код:

<?php
        // Create connection
        $con=mysqli_connect("localhost","xx","xxxx","xxxx");

       // Check connection
    if (mysqli_connect_errno($con)) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    //Get number of rows

$sql="SELECT id,title,filename FROM videos";

    $result=mysqli_query($con, $sql);
    $i=1;
    while($row=mysqli_fetch_assoc($result))
    {
        $id[$i] = $row['id'];
        $title[$i] = $row['title'];
        $filename[$i] = $row['filename'];
        $i++;
    }
    // Loop through the results from the database

    for ($i = 1; $i <=count($id); $i++)
    {
?>

<section>
    <h3><?php echo $title[$i];?></h3>
    <amp-video controls width="560" height="315" layout="responsive">
        <source src="https: //example.com/videos/<?php echo $filename[$i];?>_HD.mp4" type="video/mp4" />
        <source src="https://example.com/videos/<?php echo $filename[$i];?>__HD.webm" type="video/webm" />
        <div fallback><p>This browser does not support the video element.</p></div>
    </amp-video>
</section>
}
</amp-accordion>

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

С таким небольшим количеством фактического вывода PHP в вашем коде может быть проще и удобнее читать просто PHP, чтобы вывести HTML.

        // Create connection
        $con=mysqli_connect("localhost","xx","xxxx","xxxx");

       // Check connection
    if (mysqli_connect_errno($con)) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    //Get number of rows

$sql="SELECT id,title,filename FROM videos";

    $result=mysqli_query($con, $sql);
    while($row=mysqli_fetch_assoc($result)) {
?>

<section>
    <h3><?php echo $row['title']; ?></h3>
    <amp-video controls width="560" height="315" layout="responsive">
        <source src="https: //example.com/videos/<?php echo $row['filename']; ?>_HD.mp4" type="video/mp4" />
        <source src="https://example.com/videos/<?php echo $row['filename']; ?>__HD.webm" type="video/webm" />
        <div fallback><p>This browser does not support the video element.</p></div>
    </amp-video>
</section>
<?php
    }  // end of while
?>
</amp-accordion>
<?php
0 голосов
/ 03 сентября 2018

Проблема действительно заключается в использовании вашего синтаксиса. То, что вы должны попытаться сделать, это использовать одинарные кавычки, когда вы делаете эхо HTML и все, что вы можете добавить в HTML, вы используете двойные кавычки.

  <?php
echo '<section>';
echo '<h3>$title[$i]</h3>';
echo '<amp-video controls width="560" height="315" layout="responsive">';
echo '<source src="https://example.com/videos/'.$filename[$i].'_HD.mp4" type="video / mp4 / >"';
    echo '<source src="https://example.com/videos/'.$filename[$i].'__HD.webm" type="video/webm"/>"';
    echo '<div fallback><p>This browser does not support the video element.</p></div>';
    echo '</amp-video>';
    echo '</section>';
?>

Таким образом, намного легче обнаружить синтаксические ошибки, потому что на странице будет либо отображаться то, что она должна отображать, либо код.

...