2009-04-30 94 views
1

我想生成一個特定的鏈接,並伴隨html depednant文件的存在。我使用這樣做代碼:在PHP問題的HTML報價

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 = ''; 
    } 

這將導致以下,無用的html:

<a href="#" onclick="makewindows(" &quot;&lt;img="" src="%5C%22..%5C/images%5C/160329461329.jpg%5C%22" &gt;&quot;="");="" return="" false;="">View Screenshot</a> 

我不明白這一點,因爲上面是essentialy相同的代碼爲:

$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>"; 

產生下面的HTML工作正常:

<a href="#" onclick='makewindows("<img src=\"..\/images\/160329461329.jpg\" >"); return false;'> 
<img src="../images/160329461329.jpg" width="199" height="300"></a> 

我知道它與引用有關,但我不確定究竟是什麼。

回答

1
$imagehtml = htmlspecialchars(json_encode('<img src="'.$imageSrc.'" >'), ENT_QUOTES); 
$screenshotLink = '<p><a href="#" onclick="makewindows($imagehtml); return false;">View Screenshot</a>'; 

爲什麼不使用刻度?

7

試試這個:

$imagehtml = htmlspecialchars(json_encode("<img src=\"".$imageSrc."\" >"), ENT_QUOTES); 
$screenshotLink = "<p><a href=\"#\" onclick=\"makewindows($imagehtml); return false;\">View Screenshot</a>"; 
+0

爲什麼在你有工作時改變引號?爲什麼我的嘗試失敗了? – 2009-04-30 12:38:25

0

查找PHP手冊

並用htmlspecialchars()的ENT_NOQUOTES參數=ヶ輛()順便說一句!