我花了整个上午的研究,并在SO的帮助下,想出了如何使用Javascript抓取元素的innerHTML。
这是为搜索和社交开放图填充元标记。这里讨论的标签是元描述标签。
我在Javascript中使用的是:
document.getElementsByClassName("report-description-text")[0].childNodes[2].nodeValue;
(有点尴尬)html结构是这样的:
<!-- start report description -->
<div class="report-description-text">
<h5>Description</h5>
Welcome to Ushahidi. Please replace this report with a valid incident
<br/>
</div>
我想抓住“欢迎来到Ushahidi ......”的文字。但是这个文本不在任何html标签内,它只是文本。上面的JS用于抓取该文本。
然后我尝试将其集成到PHP脚本中,但是我很快就被投票了,因为我现在知道,你不能在服务器端执行JS(我知道但是从来没有足够的练习来真正得到它)。
PHP脚本如下所示:
if( strpos($url, '/reports/view') === 0 ) {
echo '<!-- Make this site discoverable, shareable and searchable -->
<meta name="description" content=[figure out what to put here]/>
// deal with these other metas later
<meta name="author" content="my name" />
在这个例子中,我想要内容的内容: content =“欢迎来到Ushahidi ....”/&gt;
我如何使用PHP做到这一点?它和JS一样简单吗?我做了一些研究,但只是让自己陷入困惑。
答案 0 :(得分:1)
您必须首先了解PHP在服务器端运行,然后在客户端呈现Html。
你应该尝试反过来解决问题。尝试以下几点:
在PHP中定义:
$description = "Welcome to Ushahidi. Please replace this report with a valid incident";
您可以在所有PHP代码中使用此变量:
echo '<!-- Make this site discoverable, shareable and searchable -->
<meta name="description" content=['.$description.']/>
// deal with these other metas later
<meta name="author" content="my name" />
然后在html上,您仍然可以使用此变量,因为它已经设置:
<h5>Description</h5>
<?php echo $description; ?>
<br/>