Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在不使用javascript的情况下向标题添加span标记_Php_Html_Regex_Tags - Fatal编程技术网

Php 在不使用javascript的情况下向标题添加span标记

Php 在不使用javascript的情况下向标题添加span标记,php,html,regex,tags,Php,Html,Regex,Tags,更新: 是的,我在我的页面中使用PHP。 朋友们好,我在想。。。。。有没有一种方法可以在不使用javascript的情况下向标题添加标记 可能使用正则表达式、php或其他方法。我真的不知道 让我解释一下 我的HTML如下所示: <h3 class="title">The Title Goes Here</h3> 标题在这里 我想要的是自动添加一个span标记,因此最终的HTML如下所示 <h3 class="title"><span>The &

更新: 是的,我在我的页面中使用PHP。

朋友们好,我在想。。。。。有没有一种方法可以在不使用javascript的情况下向标题添加
标记

可能使用正则表达式、php或其他方法。我真的不知道

让我解释一下

我的HTML如下所示:

<h3 class="title">The Title Goes Here</h3>
标题在这里
我想要的是自动添加一个span标记,因此最终的HTML如下所示

<h3 class="title"><span>The </span>Title Goes Here</h3>
标题在这里
我只想在
标记中包装标题的第一个单词

我知道不使用Javascript很容易做到这一点,但我正在寻找一个非Javascript的解决方案

请帮忙

如果不想使用javascript DOM,可以在PHP中使用:

$html = '<h3 class="title">The Title Goes Here</h3>';
$doc = new DOMDocument();
$doc->loadHTML($html);
$xp = new DOMXPath($doc);
foreach($xp->query('//h3[@class="title"]') as $parent) {
    $title = $parent->nodeValue;
    list($first, $rest) = explode(' ', $title, 2);
    $span = new DOMElement('span', $first. ' ');
    $parent->nodeValue = $rest;
    $parent->insertBefore($span, $parent->firstChild);
}
foreach($doc->getElementsByTagName('body')->item(0)->childNodes as $node)
{
    echo $doc->saveHTML($node);
}
$html='标题在这里';
$doc=新的DOMDocument();
$doc->loadHTML($html);
$xp=新的DOMXPath($doc);
foreach($xp->query('//h3[@class=“title”]”)作为$parent){
$title=$parent->nodeValue;
列表($first,$rest)=分解(“”,$title,2);
$span=新的DOMELENT('span',$first');
$parent->nodeValue=$rest;
$parent->insertBefore($span$parent->firstChild);
}
foreach($doc->getElementsByTagName('body')->item(0)->childNodes作为$node)
{
echo$doc->saveHTML($node);
}

我的答案是这件事做不到。没有JavaScript,您无法在浏览器中操作页面。这只能通过手动编辑服务器上的页面来实现,或者通过使用PHP逻辑或等效解决方案(其中有很多)动态生成页面


如果您是针对仅在单个公司标准浏览器上使用的公司解决方案执行此操作,则可以考虑为浏览器构建插件。

您不提供任何上下文指示。HTML页面是由PHP生成的,通过web服务器提供磁盘外服务,还是仅仅从与web浏览器位于同一台计算机上的文件加载?您的HTML是由PHP生成的吗?那么调整这个过程应该是相当容易的。如果它是一个静态文件,那么就编辑它。@James Aylett是的,我在我的页面中使用PHP。@Felix Kling是的,我在我的页面中使用PHP。您应该提供更多信息。
这里的标题是如何生成的
?您好@hakre谢谢您的帮助。你能更详细地解释一下我是如何处理多个标题的吗?是的,我在我的页面中使用php。代码示例确实适用于带有
class=“title”
的每个
标记。对于0,一个或多个。