如何解决我的PHP脚本中有语法错误吗?
| 我正在做一个项目,因为我需要将表格单元格中的文本转换为动态链接,并且转义为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>\";
解决方法
我用您的代码确定了两个:
您正在用双引号引用要尝试回显的HTML
您正在使用三元运算符,乍一看很难调试
有一种以更好的方式编写代码的方法,因此您可以立即查看出错的地方(或添加其他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变量。
,我认为您在echo语句中缺少一些连接点.
。 Esp。在第一个“ 4”函数调用之前。
顺便说一句,您的代码需要认真的重构。通过将这些返回值保存在局部变量中,可以避免很多冗余调用。
,当concat字符串时,您错过了一个点:
echo \"<td>\" . \"<a href=\\\"http://Company.com/secure/IndSearch?owner=\"
(isset($resultSetArray[$x][\"assessment\"][\"owner1\"]) ?
ucwords(strtolower($resultSetArray[$x][\"assessment\"][\"owner1\"])) : \'\') . \"/\"
// ^ missing one
....
,ucwords(strtolower($resultSetArray[$x][\"assessment\"][\"owner1\"])) : \'\')\"/\"
至
ucwords(strtolower($resultSetArray[$x][\"assessment\"][\"owner1\"])) : \'\').\"/\"
你错过了一段时间。
,您缺少一些串联点,例如在第一行和第一个“ 4”之间。
,您缺少第1行末尾和第3行末尾的重复句号
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。