使用PHP <img src=""> 显示图片

3

我对HTML/PHP规则有一个愚蠢的问题。我正在尝试使用以下代码在表格中显示来自Apache服务器的图片:

<?php

    //code

    while($row = mysqli_fetch_array($result)) {

        echo ' 
            <tr>        
              <td> '.$row['x'].' </td>
              <td> '.$row['y'].' </td>
              <td> '.$row['z'].' </td>
              <td> '.$row['f'].' </td>
              <td> '.$row['g'].' </td>
              <td> '.$row['d'].' </td>
              <td><img src=\"<?php echo $url; ?>\"/></td>
            </tr>';

}

//code

?>

但是显然内部的php脚本被视为普通文本,不会运行!


<?php has already opened and you are using echo inside another echo. Try thid: <td><img src=\"$url\"/></td> - bcesars
1
你已经在 PHP <?php echo $url; ?> 中了 - 今天是第二次了。 - Funk Forty Niner
5个回答

3

不要像那样在PHP中回显大块的HTML,这是一种糟糕的做法。实际上,这是一种可怕的做法。相反,学习在需要时打开和关闭PHP标记,例如:

<?php
//code..code...code...
while($row = mysqli_fetch_array($result))
{
?>                        
  <tr>      
    <td> <?php echo $row['x']; ?> </td>
    <td> <?php echo $row['y']; ?> </td>
    <td> <?php echo $row['z']; ?> </td>
    <td> <?php echo $row['f']; ?> </td>
    <td> <?php echo $row['g']; ?> </td>
    <td> <?php echo $row['d']; ?> </td>
    <td><img src="<?php echo $url; ?>"/></td>
  </tr>
<?php
}
//code..code...code
?>

这样做有几个好处,包括更少的语法高亮错误和代码中不会出现太多的"


我一直在想:对于人类来说,另一种方式是否仅仅更易读/编辑? - sodawillow
1
非常感谢您的建议和帮助 :)。 - Akinn

1

您已经在 PHP 中 - 不应该打开另一个 <?php 作用域:

  echo ' 
      <tr>      
      <td> '.$row['x'].' </td>
      <td> '.$row['y'].' </td>
      <td> '.$row['z'].' </td>
      <td> '.$row['f'].' </td>
      <td> '.$row['g'].' </td>
      <td> '.$row['d'].' </td>
      <td><img src="' .$url . '"/></td>
      </tr>';

0

试一下:

<?php

while($row = mysqli_fetch_array($result)){

                          echo ' 
                              <tr>      
                              <td> '.$row['x'].' </td>
                              <td> '.$row['y'].' </td>
                              <td> '.$row['z'].' </td>
                              <td> '.$row['f'].' </td>
                              <td> '.$row['g'].' </td>
                              <td> '.$row['d'].' </td>
                              <td><img src="'.$url.'"/></td>
                              </tr>';
}
?>

这只是一个字符串拼接的问题,你只需要将这些字符串组合起来,而不是设置另一个“echo script”。


0

你可以简单地关闭 PHP 部分并放置纯 HTML,然后在需要时重新打开 PHP,像这样:

<?php
$test = array( "a test","also","a","test");
$itteraror = 0;
$url = "#";
?>
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB" lang="en-GB">
<head>
</head>
<body>
<table>
<?php
while($itteraror<sizeof($test)) {
?>
            <tr>
              <td> <?php echo $test[$itteraror] ; ?></td>
              <td> <?php echo $test[$itteraror] ; ?> </td>
              <td> <?php echo $test[$itteraror] ; ?> </td>
              <td> <?php echo $test[$itteraror] ; ?> </td>
              <td> <?php echo $test[$itteraror] ; ?> </td>
              <td> <?php echo $test[$itteraror] ; ?> </td>
              <td><img src="<?php echo $url ; ?>" alt="my image"></td>
            </tr>

<?php
$itteraror++;
}


?>
</table>
</body>
</html>

为了测试目的,我对你的代码进行了一些修改,使其能够独立运行。


-1

只需要更改这个:

<td><img src=\"<?php echo $url; ?>\"/></td>

to:

<td><img src="' . $url .'"/></td>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接