Как автоматически конвертировать вкладки в вставленном коде (из .net, netbeans, notepad, sublime) в nbsp; в php

0

Таким образом, у меня есть этот блог, который я написал в php, где я публикую статьи о программировании и встроенных системах, это не так знаменито, но я делаю это в надежде, что это послужит рычагом в интервью, я нахожусь в последнем году колледжа.

Я вносил свой вклад в медиавики, и я получил вдохновение от wikilanguage, поэтому я создал себе викиязычный взгляд

И на этом языке, когда когда-либо у меня был код для вставки в мой блог, я бы окружал код тегом

Я кодирую на разных языках, поэтому я в конечном итоге использую различные IDE, которые я использовал netbeans,.net studio, блокнот, возвышенный, gedit и т.д.

private     function makecode($matches){
                $i=0;
                $out = '</br></br><div id = "cod"><table border = 0 width = 600px cellspacing = 0px> <tr></tr>';
                $matcha = htmlspecialchars(($matches[1]));
                                preg_replace("/\t/", "&nbsp;&nbsp;&nbsp;&nbsp;", $matcha);
                $lines = explode("\n", $matcha);

                foreach($lines as $line){
                    if(preg_match('/^\s*#/',$line)){
                        $out .= "<tr><td><font color = \"grey\"><i><small>$line</small></i></font></td></tr>";
                        continue;
                    }
                    if(preg_match('/^\s*$/',$line))continue;
                    $i++;
                    $out .= "<tr><td><small>$i</small>. $line</td></tr>";
            }
                $out .= "</table></div>";

                return $out;
        }

private function coder(){
        $this->text = preg_replace_callback('/<c>(.*?)<cc>/s', array($this,'makecode'),$this->text);

            }

Вот мой код для манипулирования тегом кода.

прямо сейчас я пытаюсь вставить код из блокнота, и я заменяю \t на 4 nbsp; предполагая, что большинство идей представляют собой вкладки с "\ t", кто-нибудь может предложить мне более элегантный способ обработки вкладок. Я не хочу использовать для этого готовую библиотеку.

Теги:
preg-replace-callback

2 ответа

1
Лучший ответ

Как насчет этого?

private function makecode($matches) {
    return '<pre>'.htmlspecialchars($matches[1]).'</pre>';
}

И вы можете установить размер вкладки с помощью css:

pre {
    -moz-tab-size:    4;
    -o-tab-size:      4;
    -webkit-tab-size: 4;
    -ms-tab-size:     4;
    tab-size:         4;
}

EDIT: Моя ошибка, я не видел, что вам нужны номера строк...

  • 0
    Это сработало как обаяние, но оно сохраняет \ n в начале операторов без изменений. Я думаю, мне нужно немного поиграться с кодом, чтобы понять это.
0

попробуйте использовать Eclipse или PHPStorm (мои рекомендации) - они могут отформатировать ваш код для вас (также вы можете настроить свой собственный стиль кодирования)

http://www.eclipse.org/pdt/updates/

http://www.jetbrains.com/phpstorm/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню