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

それがファイル全体であり、その特定の形式である場合は、sed次のようなもので使用できます。

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

それ以外の場合はtoken_get_all()、完全な精度のパーサーを探してください。PHPファイルを読み取ってtoken_get_all()から、配列内の文字列がどこにあるかを正確に調べるために使用できます。その後、それらを目的の文字列に置き換えて、変更されたソースをレンダリングできます。

于 2012-07-16T20:29:57.783 に答える
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 に答える