第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 在特定的 html div 上使用 str_replace

PHP 在特定的 html div 上使用 str_replace

PHP
qq_花開花謝_0 2023-03-11 16:31:30
我們希望在標(biāo)點符號中添加細(xì)線間距,以改善網(wǎng)頁排版的外觀。使用 str_replace添加細(xì)線間距以更改(what)為(&#8202;what&#8202;)似乎非常簡單,多次覆蓋四個主要標(biāo)點符號。str_replace("(", "(&#8202;", $content);str_replace(")", "&#8202;)", $content);str_replace("?", "&#8202;?", $content);str_replace("!", "&#8202;!", $content);但是我們需要將替換過程限制在主 div 中的內(nèi)容,<div id="main">bla (bla) bla</div>因為目標(biāo)標(biāo)點符號( ? ! )也被該頁面上的 CSS、JS 等使用。在應(yīng)用空格插入之前,頁面將被縮小,因此評論、換行符等將被刪除,而不是一個問題。有沒有辦法只定位內(nèi)容字符串的一部分?第二個問題是如何避免?在鏈接 url 中定位?基本上試圖忽略<a href=url'>主 div 中的項目。這個問題不是另一個詢問有關(guān)提取信息的問題的重復(fù)。這個是關(guān)于修改網(wǎng)頁中的單個字母數(shù)字字符。
查看完整描述

1 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

您需要做的是將文檔加載到 中DOMDocument,然后選擇元素中的所有相關(guān)元素<div id="main">并替換其中的文本。


像這樣的東西


$find = ['(', ')', '?', '!']; // characters to find

$replace = ['(&#8202;', '&#8202;)', '&#8202;?', '&#8202;!']; // replacements


// create a "text-contains" selector for all the characters

$selector = implode(' or ', array_map(function($char) {

? ? return sprintf('contains(text(), "%s")', $char);

}, $find));


// create an XPath query to get the text nodes

$query = sprintf('//div[@id="main"]//*[%s]/text()', $selector);


$doc = new DOMDocument();

$doc->loadHTML($content);


$xpath = new DOMXPath($doc);

$elements = $xpath->query($query);


foreach ($elements as $element) {

? ? // You need to decode the entities when working directly with text nodes

? ? $element->nodeValue = html_entity_decode(str_replace($find, $replace, $element->nodeValue));

}


$newContent = $doc->saveHTML();


查看完整回答
反對 回復(fù) 2023-03-11
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號