Те инструменты действительно помогают. линт был большим инструментом для разработчиков C.
, Но одно возражение, что я имею, то, что они - пакетные обработки, которые бегут, Вы записали изрядный объем кода и потенциально генерируете много сообщений.
я думаю, что лучший подход должен встроить такую вещь в Ваш IDE и иметь его, указывают на проблему, в то время как Вы пишете это так, можно исправить его сразу же. Не позволяйте тем проблемам войти в кодовую базу во-первых.
Вот в чем разница между инструментом статического анализа FindBugs для Java и Инспектором IntelliJ. Я значительно предпочитаю последнего.
Я действительно ищу такое же решение. Я использовал для этого метод innerHTML, однако
вокруг текстового узла все равно будет добавлен, когда вы выполняете loadHTML. У меня нет способа обойти это без использования другого синтаксического анализатора, или есть какой-то скрытый флаг, чтобы он не делал этого.
Этот код:
<?php
function innerHTML($node){
$doc = new DOMDocument();
foreach ($node->childNodes as $child)
$doc->appendChild($doc->importNode($child, true));
return $doc->saveHTML();
}
$string = '
Some photos<br>
<span class="naslov_slike">photo_by_ile_IMG_1676-01</span><br />
<span class="naslov_slike">photo_by_ile_IMG_1699-01</span><br />
<span class="naslov_slike">photo_by_ile_IMG_1697-01</span><br />
<span class="naslov_slike">photo_by_ile_IMG_1695-01</span><br />
';
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML($string);
$elements = $dom->getElementsByTagName('span');
$spans = array();
foreach($elements as $span) {
$spans[] = $span;
}
foreach($spans as $span) {
$span->parentNode->removeChild($span);
}
echo innerHTML( $dom->documentElement->firstChild );
Будет выводить:
<p>Some photos<br><br><br><br><br></p>
Однако, конечно, это решение делает не сохраняйте разметку на 100% нетронутой, но это близко.
Вы всегда можете просто использовать регулярное выражение для удаления этого первого бита:
echo preg_replace("/<!DOCTYPE [^>]+>/", "", $dom->saveHTML());
I ' я не уверен, что что-то из этого действительно сработает, но вы можете попробовать использовать DOMImplementation :: createDocument
при построении своего DOMDocument
- третий аргумент - это DOCTYPE
, который вы хотите использовать.
Кроме того, вместо saveHTML ()
вы можете попробовать saveXML ()