簡體   English   中英

檢索標簽內的所有信息:DOMNODE

[英]Retrieved all information inside tags : DOMNODE

我有一個腳本,我無法控制 HTML,只能修改基本的 CSS。 我只是想知道是否可以在不區分內部元素的情況下將所有信息從 <script> 剪切到其關閉 </script>?

例子:

<script src='http://localhost/[...]/assets/js/frontend.min.js?ver=3.5.3'
    id='elementor-frontend-js'></script>

因此,例如在這里,我想以字符串形式檢索整行以將其存儲在數組中。

    $document = new DOMDocument();
    libxml_use_internal_errors(true);

    $document->loadHTML($content);
    libxml_use_internal_errors(false);

    // An empty array to store all the 'srcs'
    $scripts_array = [];

    // Store every script's source inside the array
    foreach ($document->getElementsByTagName('script') as $script) {
        if ($script->hasAttribute('src')) {
            $scripts_array[] = $script->getAttribute('src');
        }
    }

所以這是我的一段代碼,現在我設法檢索加載的文檔,瀏覽腳本,但我只提取“src”屬性; 但我想毫無區別地檢索所有內容。

謝謝您的回答: :)

您只獲得src屬性值,因為這就是您在$script->getAttribute('src')中要求的全部。 將您的foreach替換為:

$xpath = new DomXPath($document);
$attribs = $xpath ->query("//script/@*");

foreach ($attribs as $attrib) {     
            $scripts_array[] = $attrib->nodeValue ;            
    }

看看它是否有效。

首先謝謝你的回答,我試過了。 而且我沒有得到我想要的:當我進行查詢時,我得到了這個:

 "more_info": [
    "http://localhost:8888/Sadem/wordpress/wp-content/plugins/elementor/assets/lib/font-awesome/js/v4-shims.min.js?ver=3.5.5",
    "font-awesome-4-shim-js",
     ...and more
]

我正在尋找的是這樣的完整行:“more_info”:[“http://localhost/.../assets/lib/font-awesome/js/v4-shims.min.js”,“font -awesome-4-shim-js", ...等等]

我一直在尋找的是這樣的完整行:

"more_info": [
    "<link rel='stylesheet' href='http://localhost/.../assets/lib/font- 
     awesome/js/v4-shims.min.js' id='font-awesome-4-shim-js'/>",
     ...and more
] 

但是我再次感謝你的幫助,所以很少有人願意幫助我......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM