我试图生成一个特定的链接和伴随html depednant存在的文件.我用来这样做的代码:
if(file_exists('../images/'. $pk . '.jpg'))
{
$imageSrc = "../images/". $pk . ".jpg";
$imagehtml = htmlentities(json_encode("<img src=\"".$imageSrc."\" >"));
$screenshotLink = "<p><a href=\"#\" onclick=\"makewindows(\"$imagehtml\"); return false;\">View Screenshot</a>";
}
else {
$screenshotLink = '';
}
Run Code Online (Sandbox Code Playgroud)
这导致以下无用的html:
<a href="#" onclick="makewindows(" "<img="" src="%5C%22..%5C/images%5C/160329461329.jpg%5C%22" >"="" );="" return="" false;="">View Screenshot</a>
Run Code Online (Sandbox Code Playgroud)
我不明白这一点,因为上面的代码完全相同:
$html = htmlentities(json_encode($ARTICLE_DESC));
$imagehtml = htmlentities(json_encode("<img src='".$imageSrc."' >"));
echo "<a href='#' onclick=\"makewindows(" . $imagehtml . "); return false;\">
<img src='".$imageSrc."' width='".$imageSize["width"]."' height='".$imageSize["height"]."'></a>
<p><a href='#' onclick=\"makewindows(" . $html . "); return false;\">Click for full description </a></p>";
Run Code Online (Sandbox Code Playgroud)
产生以下html工作正常:
<a href="#" onclick='makewindows("<img src=\"..\/images\/160329461329.jpg\" >"); return false;'>
<img src="../images/160329461329.jpg" width="199" height="300"></a>
Run Code Online (Sandbox Code Playgroud)
我知道它与引号有关,但我不确定究竟是什么.
试试这个:
$imagehtml = htmlspecialchars(json_encode("<img src=\"".$imageSrc."\" >"), ENT_QUOTES);
$screenshotLink = "<p><a href=\"#\" onclick=\"makewindows($imagehtml); return false;\">View Screenshot</a>";
Run Code Online (Sandbox Code Playgroud)