PHP:试图将 href HTML 属性放入 `echo`

PHP: trying to put href HTML attribute into a `echo`

我似乎无法将 URL 放入 echo。我想制作一个 link 来打开 Google 地图:

我不知道我的代码有什么问题:

$query = mysql_query("SELECT * FROM cev")or die(mysql_error());
while($row = mysql_fetch_array($query))
{
  $name = $row['sitecode'];
  $lat = $row['latitude'];
  $lon = $row['longitude'];
  $type = $row['sitetype']; 
  $city = $row['city']; 
  $id = $row['id'];

  echo("addMarker($lat, $lon,'<b>$name</b><a href="editcev.php?id=' . $row['id'] . '">View</a><br><br/>$type<br/>$city');\n");

您必须修正引号:

 echo "addMarker($lat, $lon,'<b>$name</b><a href=\"editcev.php?id={$row['id']}\">View</a><br><br/>$type<br/>$city');\n";

其他方式

Here document

echo <<<EOS
addMarker($lat, $lon, '<b>$name</b><a href="editcev.php?id={$row['id']}">View</a><br><br/>$type<br/>$city');

EOS;

串联

echo "addMarker($lat, $lon, '<b>$name</b>" .
  "<a href=\"editcev.php?id={$row['id']}\">View</a>" .
  "<br><br/>$type<br/>$city)";

使用addshashes

addMarker 看起来像一个 JavaScript 函数。您可以通过 addslashes:

预处理 HTML 字符串
$html = <<<EOS
<b>$name</b><a href="editcev.php?id={$row['id']}">View</a><br><br/>$type<br/>$city
EOS;
$html = addslashes($html);

echo "addMarker($lat, $lon, '$html');\n";

建议

我建议使用支持语法高亮的编辑器。

了解 PHP strings。尤其是逃跑的事情。

最后,我不建议在 PHP 代码中编写 any HTML/JavaScript。请改用 Smarty or Twig 等模板引擎。

您似乎在尝试在 echo 语句中使用 method。如果你想使用方法、变量或一些 php 的东西,你不应该在大多数情况下使用引号,除非它是 eval 特色对象或方法。

像这样尝试

echo addmarker($lat, $lon, 
               '<b>'.$name.'</b> <a href="'.editcev.php?id=.' '.$row['id'].
               ".'>View</a><br><br/>'
               .$type.
               '<br/>'
               .$city.');'."\n");

我不知道你的确切情况,但我认为这可行

  echo("addMarker(".$lat.",".$lon.",<b>".$name."</b><a href=ditcev.php?id=" . $row['id'] . ">View</a><br><br/>".$type."<br/>".$city.");\n");