2

我的代码是这样的,它将访问所有 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>

请有任何建议。谢谢。

4

2 回答 2

1
$lines = explode(PHP_EOL, $html);

这是我的提示,我相信你可以弄清楚其余的。顺便说一句,已经有 PHP 库,比如GeSHi

哦,你的代码有一个小错误。在您加载 HTML 的地方,您会这样做'$url',这字面意思是$url,而不是您的变量。使用双引号或根本不使用。

于 2012-12-30T02:54:51.357 回答
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>";
于 2012-12-30T02:58:25.740 回答