2020年7月6日 新型肺炎ウィルスの影響を受けて、お問い合わせ対応時間が10時~18時となっております。ご迷惑をおかけしますが宜しくお願い申し上げます。

crayon-syntax-highlighterをphp7.3で使う

 

こんにちはカトーです。
密かに個人ブログもいくつか運営してるのですが、久しぶりにログインしてアップデートしたら警告を吐いてました。

 

 

エラーの原因は記事中にコードを表示するcrayon-syntax-highlighterの正規表現の部分のエラーなのですが、
困った事にphp7.3にcrayon-syntax-highlighterは最新バージョン 2.8.4でも最終更新日は 3年前。

PHP 7.2 までは正常に動いていたものが、PHP 7.3にバージョンアップす警告を出します。

正しい方法としては、使用を辞めて他のプラグインに切り替えるのでしょうが、コード確認と過去の記事確認、違うプラグインの選択も含めて結構手間です。
またエンジニアとしては、PHPの警告だけなら修正かな?と思ってましたが、ありがたい事に使っている有志が対応を用意してあります。

crayon-syntax-highlighterのアップデート

Crunchify/crayon-syntax-highlighter

Crunchify/crayon-syntax-highlighter
Crayon Syntax Highlighter & PHP 7.3 fix
https://github.com/Crunchify/crayon-syntax-highlighter/releases

ダウンロードし解凍したファイルを、wp-content/plugins/crayon-syntax-highlighter に上書きで使えます。

自分で修正する場合は?

自分で修正する場合は、/plugins/crayon-syntax-highlighter/crayon_langs.class.phpの340行目付近、
検索するとバックスラッシュと入れるといいとありますが……すいませんが、ここは動作確認をしてませんが多分動きます。

preg_match()関数も正規表現のマッチングの挙動が7.2系から7.3系で変わってるのこのせいでしょうか。

調べると、”PHPが使用する正規表現ライブラリのバージョンが、最近変更された可能性じゃね?”
”PCREライブラリがサーバー上でアップグレードされた場合は、それが理由である可能性だろ?”

https://stackoverflow.com/questions/24764212/preg-match-compilation-failed-invalid-range-in-character-class-at-offset

……と掲示板にありました。
多分、ハイフンあたりの指定が違うので、バックスラッシュでエスケープで逃げる対応になるでしょうか?
あまり宜しい事がありませんが、今後この対応は増えるかもしれません。

使用注意・乗り換えは?

皆が選んでいる現在の乗り換えは、Urvanov Syntax Highlighter、Enlighter – Customizable Syntax Highlighter、あたりでしょうか?

いずれこちらも乗り換えようと思います。

最後に

WordPressは本当に便利ですが、便利な用意のひとつにプラグインですが、アップデートされないで止まってしまうプラグインも悩みの種の一つ。CVEや脆弱性情報を見てると本当に頭がいたいところです。

ただ記事を書くだけらDremweaverから直か、WYSIWYGとPOSTする簡単なCRUDでもいいのですが……。

 

 

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG