Лучший способ автоматически удалить комментарии из кода PHP

У меня такое поведение было раньше, я думаю, что это как-то связано с float: правильно, поэтому вы можете обернуть эти теги в div следующим образом:

<div id = "navbar">
<div class="wrapper">
<a id = "logo">Rob Moore LTD</h3>
<a class = "nav" href="#home">Home</a>
<a class = "nav" href="#about">About</a>
<a class = "nav" href="#services">Services</a>
<a class = "nav" href="#gallery">Gallery</a>
<a class = "nav" href="#contact">Contact</a>
</div>
</div>

и в вашем css: [ 113]

.wrapper{
    float:right
}

#navbar a {
display: block;
padding-top: 25px;
padding-bottom: 30px;
padding-left: 10px;
margin-right: 20px;
color: #000;
text-decoration: none;
}

Или вы можете просто изменить порядок тегов в html. Надеюсь, это поможет.

47
задан Coral Doe 21 October 2012 в 22:12
поделиться

4 ответа

Я использовал бы токенизатор . Вот мое решение. Это должно работать и над PHP 4 и над 5:

$fileStr = file_get_contents('path/to/file');
$newStr  = '';

$commentTokens = array(T_COMMENT);

if (defined('T_DOC_COMMENT'))
    $commentTokens[] = T_DOC_COMMENT; // PHP 5
if (defined('T_ML_COMMENT'))
    $commentTokens[] = T_ML_COMMENT;  // PHP 4

$tokens = token_get_all($fileStr);

foreach ($tokens as $token) {    
    if (is_array($token)) {
        if (in_array($token[0], $commentTokens))
            continue;

        $token = $token[1];
    }

    $newStr .= $token;
}

echo $newStr;
54
ответ дан Ionuț G. Stan 7 November 2019 в 13:02
поделиться

Как насчет того, чтобы использовать php-w для генерации файла, лишенного комментариев и пробела, затем с помощью программы изящного форматирования как PHP_Beautifier для переформатирования для удобочитаемости?

43
ответ дан Paul Dixon 7 November 2019 в 13:02
поделиться
$fileStr = file_get_contents('file.php');
foreach (token_get_all($fileStr) as $token ) {
    if ($token[0] != T_COMMENT) {
        continue;
    }
    $fileStr = str_replace($token[1], '', $fileStr);
}

echo $fileStr;

редактирование я понял, что Ionut G. Stan уже предложил это, но я оставлю пример здесь

9
ответ дан Tom Haigh 7 November 2019 в 13:02
поделиться

Выгода - то, что менее устойчивый алгоритм соответствия (простой regex, например) начнет разделять здесь, когда он ясно не был должен:

if (preg_match('#^/*' . $this->index . '#', $this->permalink_structure)) {  

Это не могло бы влиять на Ваш код, но в конечном счете кто-то получит бит Вашим сценарием. Таким образом, необходимо будет использовать утилиту, которая понимает больше языка, чем Вы могли бы иначе ожидать.

-Adam

0
ответ дан Adam Davis 7 November 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: