2017-06-26 23 views
0

配列PHPファイルの値を編集したいと思います。ファイルの配列キー値をPHPで置き換えます。

this is lang.php  
$lang = array (
    'l_name' => "Language", 
    'b' => "Break"); 

は、私はそれを行うことができますどのよう'l_name' => "Hi its me.",

'l_name' => "Language",を交換したいですか?

$fileContents = file_get_contents($path_to_file); 
$search = array('l_name'); 
$replace = array('Hi, its me'); 
$newContents = str_replace($search, $replace, $fileContents); 
$handle = fopen($path_to_file ,"w"); 
fwrite($handle, $newContents); 
fclose($handle); 

私はそれを行うことができますどのように、キーの値に置き換えたい私はこれを試してみましたが、そのは、そのキー'l_name'

の交換作業をしませんか?

ありがとうございます。

答えて

1

以下のコードを確認し、それに応じて交換してください。

<?php 

//Replace 'l_name' key value: 
echo "\n\nReplace 'l_name' key value: \n"; 
$lang = array (
    'l_name' => "Language", 
    'b' => "Break"); 
$search = $lang['l_name']; 
$replace = 'Hi, its me'; 
$newContents = str_replace($search, $replace, $lang); 
print_r($newContents); 

//Replace all key value 
$newArr = array(); 
foreach($lang as $key=>$val) 
{ 
    $newArr[$key] = 'Hi, its me'; 
} 

echo "\n\nReplace all key value: \n"; 
print_r($newArr); 

出力

Replace 'l_name' key value: 
Array 
(
    [l_name] => Hi, its me 
    [b] => Break 
) 


Replace all key value: 
Array 
(
    [l_name] => Hi, its me 
    [b] => Hi, its me 
) 

デモ:Click Here

+0

ありがとうございました。しかし、 '$ lang'の中のすべてのキーを置き換えることはできますか? –

+0

'l_name'値だけを置き換える必要があると書いてあります。 – RJParikh

+0

ここでは '$ lang ['l_name'];'何か? '$ lang'がすべての鍵を得ることができるように? –

0

問題は、あなたのコード内の文字列を使用している場合、いくつかの仮定をしなければならないということです。以下は、あなたがより信頼性のコードを変更することができますASTパーサー(https://github.com/nikic/php-ast)で作業することができます...限り、間隔は権利であるとあなたが引用符の同じ種類に固執するよう

$fileContents = file_get_contents("t1.php"); 
$search = '\'l_name\' => "Language"'; 
$replace = '\'l_name\' => "Hi, its me"'; 
$newContents = str_replace($search, $replace, $fileContents); 
$handle = fopen("t1.php","w"); 
fwrite($handle, $newContents); 
fclose($handle); 

に動作します方法はより複雑です。

関連する問題