用PHP混合引号

时间:2014-02-05 18:43:34

标签: php mysql

我有这个脚本从数据库中获取我的信息

$result = mysqli_query($con,"SELECT * FROM <table> WHERE id = 3");

while($row = mysqli_fetch_array($result))
  {
  echo '<p>'.$row['name'].'</p>' . " " .'<p>' . $row['description'] . '</p>' . " " . '<p>' . $row['price'] . '</p>';
  echo "<br>";
  echo '<img src="http://www.example.com/images/'.$row['profile_pic'].'" alt="profilepic" />';
  echo '<img src="http://www.example.com/images/'.$row['pic1'].'" alt="pic1" />';
      ^^^                                                *********
      Here is the problem because I should have sigle quote at the beginning and at the end, but I still have it above ***.And I use double quotes for the src on the <img> so those are taken too.
  echo '<img src="http://www.example.com/images/'.$row['pic2'].'" alt="pic2" />';
  echo '<img src="http://www.example.com/images/'.$row['pic3'].'" alt="pic3" />';
  }

如果我按照我的意图这样做,我需要另一套引号(可能是三联:]] ..我怎么能以正确的方式做到这一点?

4 个答案:

答案 0 :(得分:3)

您拥有的源代码看起来不错。您可以在\的单引号或双引号之前使用escape字符,如下所示:

$variable = "my quote's are \"like this\" ";

// output: my quote's are "like this"

同样地:

$variable = 'this is "how my quotes" don\'t look';

// output: this is "how my quotes" don't look

答案 1 :(得分:2)

您可以使用HEREDOC语法,如下所示。变量可以在没有任何{}括号的情况下内联使用。数组必须包含在{}中。两种类型的变量都可以嵌入在线。

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

// "EOH" can be any string of your choosing, but you must close with it
$output = <<<EOH;
<p>{$row['name']}</p> <p>{$row['description']}</p> <p>{$row['price']}</p>
<br>
<img src="http://www.example.com/images/{$row['profile_pic']}" alt="profilepic" />
<img src="http://www.example.com/images/{$row['pic1']}" alt="pic1" />
<img src="http://www.example.com/images/{$row['pic2']}" alt="pic2" />
<img src="http://www.example.com/images/{$row['pic3']}" alt="pic3" />
EOH; // from above; MUST be aligned all the way left (don't intent or tab)

echo $output;
}

答案 2 :(得分:2)

Rasmus Lerdorf通过在变量name前加上$来引入PHP后回答了你的问题 您只需要执行以下操作:

<强>编辑

//Place any string in double quote
echo "<p> {$row['name']} </p> <p> {$row['description']} </p> <p> {$row['price']} </p>";

以下是interview with Rasmus

的引用
  

$ Dollar登录PHP变量

     

当被问及为什么变量以$符号开头时,他解释道   这意味着能够在文字字符串中插入变量   值,因此需要使用标记来区分什么是a   来自字符串其余部分的变量。

     

因为他希望变量在内部和外部看起来相同   字符串,他选择了$符号启动变量,灵感来自于   Perl也采用的解决方案。

答案 3 :(得分:0)

您需要在htmlspecialchars()哈希中的每个项目周围调用$row,即htmlspecialchars($row['profile_pic'])

mysqli_fetch_assoc()将比mysqli_fetch_array()稍微提高内存效率。