ホームページ >バックエンド開発 >PHPチュートリアル >PHPが簡易構文ハイライト機能を実装

PHPが簡易構文ハイライト機能を実装

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-25 08:43:111329ブラウズ

PHP で実装された単純な構文強調表示関数。 注: この関数は設計が比較的単純なので、この関数の機能を自分で拡張できない場合があります

  1. function syntax_highlight($code ){
  2. // これは --> "foobar" $code = preg_replace(
  3. '/"(.*?)"/U',
  4. '"$1"', $code
  5. );
  6. // 関数やその他の構造体を強調表示します --> function foobar() $code = preg_replace(
  7. ' /(s)b(.*?)((b|s)()/U',
  8. '$1$2$3',
  9. $code
  10. );
  11. // コメント (/* */ など) と一致します:
  12. $code = preg_replace(
  13. '/(//)(.+)s/',
  14. '$0',
  15. $code
  16. );
  17. $code = preg_replace(
  18. '/(/*. *? */)/s',
  19. '$0',
  20. $code
  21. );
  22. // 中括弧を強調表示します:
  23. $code = preg_replace('/((|[|{|}|]|)|->)/', '$1> ;' , $code);
  24. // 変数をハイライトします $foobar
  25. $code = preg_replace(
  26. '/($[a-zA-Z0-9_]+)/', '$1', $code
  27. );
  28. /* パターン内の b は単語の境界を示すため、個別
  29. ** 単語「web」のみが一致し、「」のような部分的な単語は一致しません。ウェビング」または「クモの巣」
  30. */
  31. // 特別な単語と関数
  32. $code = preg_replace(
  33. '/b(print|echo|new|function)b/',
  34. '$1', $code
  35. );
  36. return $code;
  37. }
  38. /*example-start*/
  39. /*
  40. ** サンプル PHP コードを作成します :
  41. */
  42. $example_php_code = '
  43. // いくつかのコード コメント:
  44. $example = "foobar";
  45. print $_SERVER["REMOTE_ADDR"];
  46. $array = array(1, 2, 3, 4 , 5 );
  47. function example_function($str) {
  48. // 文字列を反転
  49. echo strrev($obj);
  50. }
  51. print example_function("foo");
  52. /*
  53. ** 複数行のコメント
  54. */
  55. print "何か: " . $example;';
  56. // フォーマットされたコードを出力します:
  57. print '
    ';
  58. print syntax_highlight($example_php_code);
  59. print '
  60. /*example-end*/
コードをコピー

php


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。