【问题标题】:Search and replace in YML file + PHP在 YML 文件中搜索和替换 + PHP
【发布时间】:2014-06-01 18:39:46
【问题描述】:

是否可以在 yml 文件中搜索字符串并替换它?这是我的 yml 文件的一部分:

'PST Today': 'PST Today'
'PST Today Table': 'PST Today Table'
Hosttess: Hosttess
'Permit Total': 'Permit Total'
Visit: Visit
Conversation: Conversation
....

: 之前的每条规则的第一部分始终相同,但现在我想查找 : 之前的第一部分并更改 : 后面的字符串。我该怎么做?

【问题讨论】:

  • 个人没有这方面的经验,但您可以尝试研究一下 yaml_parse() 和/或 file_get_contents()?不确定,只是想帮忙。如果我今天有时间会尝试。

标签: php symfony search replace yaml


【解决方案1】:

尝试使用Symfony\Component\Yaml\Yaml 类。这是 Symfony 标准版的一部分。执行以下操作:

$dataArray = Yaml::parse($pathToYourYmlFile);

那么你可以做任何你想做的事情(array_filter 也许?)你的$dataArray 变量是常规数组。完成后,您可以使用:

$dataString = Yaml::dump($dataArray)

这将返回带有 yaml 内容的字符串,您可以将其保存回您的文件,可能是 file_put_contents

【讨论】:

    【解决方案2】:

    要匹配 ':' 后面的值,您可以这样做:

    <?php
      $contents = file_get_contents('file.yml');
      preg_match_all('/^[^:]:\s+(.*)$/', $contents, $matches);
      print_r($matches);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2012-02-25
      • 2014-09-19
      • 2015-08-20
      • 2015-06-19
      相关资源
      最近更新 更多