HTML中的PHP变量显示为'0 '在页面标题中


PHP variables in HTML shows up as 'zero' in page title

我有一个编程新手。我正在从字母表中学习。请原谅我最基本的问题。我有一个HTML模板内的PHP画廊脚本。在HTML的title标签中放置了两个变量。<title>"$gtitle $pcaption"</title> ($gtitle是画廊标题,$pcaption是照片说明)我的问题是$pcaption在画廊页面上的页面标题标签中显示为零。它出现在标题中,比如

"例子gallery-0 "

(我认为这是因为$pcaption在画廊页面上是空的,当图片被点击时,标题标签显示了标题)。我的问题是,有没有办法避免零的出现?

我在一个本地主机上工作,使用PHP 5.5.12。

我的HTML部分如下(抱歉,如果这是充满错误)..

// Final Output
echo <<<__HTML_END
<html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<head>
<base href="/viewgallery.php/">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<!-- <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"/> -->
<title><? php echo $gtitle . " " . $pcaption;?></title>
<link rel="stylesheet" type="text/css" href="/styles.css">
<meta name="author" content="by .">
<meta name="Copyright" content="All rights reserved by .">  
<meta name="keywords" content="$p_keywords,Photography by .">
<meta name="title" content="$gallery_listing">
<meta name="description" content="$gallery_description,$pcaption.">
<link rel="image_src" href="/photos/$cname/$pcaption/">
<link rel="icon" type="image/ico" href="/favicon.ico">
</head>
<body>
<div class="wrapper">
<h1 id="header1"><a href="/viewgallery.php"><span></span></a></h1>
<div class="main">
<ul class="nav">
<li><a href="/index.php">HOME&nbsp;&nbsp;|</a></li>
<li><a href="/viewgallery.php">MY GALLERIES&nbsp;&nbsp;|</a></li>
<li><a href="/searchmyway.php">SEARCH&nbsp;&nbsp;|</a></li>
<li><a href="/aboutme.php">ABOUT ME</a></li>
</ul>
$result_final
</div>
</div>
<div class="footer">
<div class="footinner">
<div id="seeker">
<form action="/searchmyway.php" method="get"><input type="text" name="q" id="search">
<input type="submit"  id="find" value="Search">
<input type="hidden" name="form_id:search" value="1">
</form></div></div>
<p class="footnote"> </p>
</div>
</body>
</html>
__HTML_END;
?>

谢谢你的帮助…

编辑-我不得不承认这不是我自己的画廊脚本。我正试图从这个代码学习。在看了这么长时间之后。我看到HTML代码上方有一个"echo"。看起来像最后的HTML是用$results_final和我试图在echo命令后做出改变,可能是我做错了?

您可以执行测试-

if(0 == $pcaption) {
    echo '<title>' . $gtitle . '</title>';
} else {
    echo '<title>' . $gtitle . ' - ' . $pcaption . '</title>';
}
$galleryTitle = $gtitle;
if(!empty($pcaption) && $pcaption > 0) { $galleryTitle .= " " . $pcaption; }

把你的代码的'echo'行上面的两行,用下面的代码替换echo里面的title标签。

<title>$galleryTitle</title>

被回显的语句称为heredoc语句。

http://php.net/manual/en/language.types.string.php language.types.string.syntax.heredoc

您可以使用if/then/else语句来完成此操作,如:

echo "<title>".$gtitle;
if($pcaption != 0){echo " - ".$pcaption;}
echo "</title>";

你已经知道你想输出你的打开和关闭的标题标签和你的$gtitle变量,所以你只需要写一个if语句来检查$ ptitle的值,如果它不是0,那么回显它。您可能还想添加一个检查,以查看$pcaption是否为空(http://php.net/manual/en/function.empty.php),因此新的if语句将是:

if($pcaption != 0 && !empty($pcaption)){...}

这样你就不会把像<title>$gtitle - </title>这样的东西放出来,并且有一些看起来很奇怪的东西。