3

我有PHP代码:

<?php
$vF = array('nazwa' => 'Nazwa', 'telefon' => 'Telefon', 'email' => 'E-mail', 'adres' => 'Adres');
?>

我想用 sed 把它改成这样:

<?php
$vF = array('nazwa' => _('Nazwa'), 'telefon' => _('Telefon'), 'email' => _('E-mail'), 'adres' => _('Adres'));
?>

我该怎么做?

4

2 回答 2

0

perl

perl -pe 's/(?<=> )([^,]+)(?=[,;])/_($1)/g' foo.php

测试:

$ cat foo.php
<?php
$vF = array('nazwa' => 'Nazwa', 'telefon' => 'Telefon', 'email' => 'E-mail', 'adres' => 'Adres');
?>

$ perl -pe 's/(?<=> )([^,]+)(?=[,;])/_($1)/g' foo.php
<?php
$vF = array('nazwa' => _('Nazwa'), 'telefon' => _('Telefon'), 'email' => _('E-mail'), 'adres' => _('Adres'));
?>
于 2013-06-10T05:13:24.047 回答
0

如果这是整个文件,并且采用该特定格式,那么您可以使用以下内容sed

sed "s/\\('[^']*'\\)\\([,)]\\)/_(\\1)\\2/g" b.php

否则,请查看token_get_all()完整的精度解析器。您可以读取您的 PHP 文件,然后使用它token_get_all()来找出数组中字符串的确切位置,然后您可以将它们替换为所需的字符串并呈现修改后的源代码。

于 2012-07-16T20:29:57.783 回答