可以说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
,等等。
如果一行中包含一个 php 打印文本,我想我知道如何使用sed
替换,但是如果一长行包含多个 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() 的参数跨越多行。
但仍有足够多的情况会失败。