我的代码就是这样,它将访问所有DOM元素。现在我想在它们旁边添加行号。任何人都可以请帮助。谢谢。
<?php
$dom = new domDocument;
// load the html into the object
$dom->loadHTMLFile('$url');
// keep white space
$dom->preserveWhiteSpace = true;
// nicely format output
$dom->formatOutput = true;
//get element by tag name
$htmlRootElement = $dom->getElementsByTagName('html');
$new = htmlspecialchars($dom->saveHTML(), ENT_QUOTES);
echo '<pre>' .$new. '</pre>';
?>
上面的代码不会输出任何行号。我想做这样的事情。
<!DOCTYPE html>
1.<html>
2.<head>
3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4. <title></title>
5.</head>
6.<body>
7.</html>
请提出任何建议。感谢。
答案 0 :(得分:1)
$lines = explode(PHP_EOL, $html);
有我的提示,我相信你可以把剩下的都搞清楚了。 这个btw已有PHP库,如GeSHi
哦,你的代码有一个小错误。
在您加载HTML的位置,您执行'$url'
,字面意思是$url
,而不是您的变量。使用双引号或根本不使用。
答案 1 :(得分:1)
只需按新行分割字符串,然后打印行号,后跟行:
$lines = preg_split( '/\r\n|\r|\n/', $new );//split the string on new lines
echo "<pre>";
foreach($lines as $lineNumber=>$line){
echo "\r\n" . $lineNumber . ". " . $line;
}
echo "</pre>";