ホームページ >バックエンド開発 >PHPチュートリアル >PHPは単純なソースコード構文強調表示機能を実装します

PHPは単純なソースコード構文強調表示機能を実装します

WBOY
WBOYオリジナル
2016-07-25 08:45:321036ブラウズ

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

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

php


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