2014-05-15 46 views
4

我有以下數據的common.yml文件:與PHP腳本修改YAML文件

main: 
    shred: 
    viral: 
     image1: 
     alt: Sunset 
     src: 'http://i.imgur.com/nOptw.jpg' 
     image2: 
     alt: Fernie 
     src: 'http://i.imgur.com/yfJaUoX.gif' 

我試圖讓一個PHP腳本編輯的「SRC」屬性,以新的形象從我得到一我下載的新json文件。問題是我如何編輯這兩個圖像的src。我試圖使用Symfony Yaml組件翻斗車,但不知道如何使用它來更新我的文件的特定部分。

請幫忙.....

+0

你編輯後清除緩存? php app/console cache:clear --env = prod php app/console cache:clear --env = dev –

+0

@ColourDalnet它與更新yml文件有什麼關係。我不明白你的評論。 – maths

回答

8

正如你所說你必須使用Symfony Yaml組件。

例如,您可以訪問 「源」 的數據:

$yaml = Yaml::parse(file_get_contents($this->container->get('kernel')->getRootDir() .'/config/common.yml')); 

$srcData = $yaml['main']['schred']['viral']['image1']['src']; 

在這裏,您的數據訪問= 'http://i.imgur.com/nOptw.jpg'。接下來,你可以改變的價值和更新您的文件:

$yaml['main']['schred']['viral']['image1']['src'] = $yourNewValue; 

$new_yaml = Yaml::dump($yaml, 5); 

file_put_contents($this->container->get('kernel')->getRootDir() .'/config/common.yml', $new_yaml); 

希望這可以幫助你

+0

非常感謝Perroin Thibault解決了我的問題。但是當我執行轉儲時,它會在文件中的某些其他屬性周圍添加引號。 – maths

+0

太棒了!你有問題的例子嗎?這很奇怪 –

+1

我的問題是,我需要保留yaml文件中的所有評論。任何想法? – digitaldonkey