2012-12-30 67 views
2

我的代碼是這樣的,它將訪問所有的DOM元素。現在我想在他們旁邊添加行號。任何人都可以請幫忙。謝謝。有沒有辦法在每個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> 

請任何建議。謝謝。

回答

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>"; 
+0

這真的很有幫助。作品完美。太感謝了。 – user1825190

+0

太棒了,很高興提供幫助。謝謝! – chwagssd

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

有我的提示,我敢肯定你可以找出其他的問題。 這個btw已經有PHP庫了,就像GeSHi

哦,你的代碼有一個小錯誤。 在你加載HTML的地方,你做的是'$url',它的字面意思是$url,而不是你的變量。使用雙引號或根本沒有。

+0

感謝。 $ url那裏我的意思是例如'http://www.google.com',而不是地址我寫了$ url認爲它會更有意義。 – user1825190

相關問題