我正在处理一个项目,我需要将表格单元格中的文本转换为动态链接,并且在转义为HTML时出现错误。
以下是我尝试转换为链接的代码行。在我尝试将其作为链接之前,它完美无缺。
echo "<td><a>" . (isset($resultSetArray[$x]["assessment"]["owner1"]) ?
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '')
. "</a></td>";
它从数据库中返回一个名称。我需要这个名称是指向另一个页面的链接,其名称在URL中。
这是我尝试过没有成功的事情。我哪里错了?
echo "<td>" . "<a href=\"http://Company.com/secure/IndSearch?owner="
(isset($resultSetArray[$x]["assessment"]["owner1"]) ?
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '')"/"
(isset($resultSetArray[$x]["assessment"]["owner1"]) ?
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '') . "</a></td>";
答案 0 :(得分:3)
我已经用你的代码确定了两个:
有一种方法能够以更好的方式编写代码,以便您可以立即看到出错的地方(或添加其他HTML标记/变量等)。
字符串引用语法称为HereDoc
$owner = '';
if(isset($resultSetArray[$x]["assessment"]["owner1"]))
{
$owner = $resultSetArray[$x]["assessment"]["owner1"];
}
$str = <<<EOF
<td><a href="http://Company.com/secure/IndSearch?owner=$owner">$owner</a></td>
EOF;
echo $str;
正如您所看到的,您不必检查数组两次以确认条目存在,也不必转义任何引号,这样您就可以安全地粘贴HTML而无需担心并且您也可以使用PHP变量。< / p>
答案 1 :(得分:2)
我认为你在echo语句中缺少一些连接点.
。 ESP。在第一次isset
函数调用之前。
顺便说一下你的代码需要严肃的重构。通过将这些返回值保存在局部变量中,可以避免许多冗余调用。
答案 2 :(得分:1)
连字符串时你错过了一个点:
echo "<td>" . "<a href=\"http://Company.com/secure/IndSearch?owner="
(isset($resultSetArray[$x]["assessment"]["owner1"]) ?
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '') . "/"
// ^ missing one
....
答案 3 :(得分:1)
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '')"/"
到
ucwords(strtolower($resultSetArray[$x]["assessment"]["owner1"])) : '')."/"
你错过了一段时间。
答案 4 :(得分:0)
您缺少一些连接点,例如在第一行和第一行isset
之间。
答案 5 :(得分:0)
您缺少连接句点是第1行的结尾,第2行是第3行