「」を「Blabla」に交換

「」を「Blabla」に交換

file.php私はPHP印刷テキストがたくさんあると言うことができます<?php print t('Blabla'); ?><?php print t('Text Here'); ?>など。

私が必要とするのは、<?php print t('PHP'); ?>印刷テキストを削除することです。

だから、<?php print t('Blabla'); ?>なりますBlabla<?php print t('Text Here'); ?>なりますなどですText Here

sed1行にPHP印刷テキストが含まれている場合は、置換を使用する方法を知っていると思います。しかし、長い行に複数のPHP印刷テキストが含まれている場合はどうなりますか?

交換する方法を知りたいです。

ベストアンサー1

私の考えでは、あなたの意図は、PHPスクリプトから古い国際化システムを削除することです。

perl -e 'undef$/;$s=<>;$s=~s/<\?php\s+(?:print|echo)\s+t\((['"'"'"])(.*?)\1\);\s+\?>/$2/gs;print$s' apasajja

質問に提案されていないいくつかの改善点があります。

  • printまたは両方に適用されますecho
  • 一重引用符と二重引用符に適用されます。
  • <?php..?>タグが別々の行に表示されるようにします。
  • t() の引数が複数行に渡るようにします。

しかし、失敗する状況はまだ十分です。

おすすめ記事