Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组转换为C#数组/数据集_C#_Php_Arrays_Parsing - Fatal编程技术网

将PHP数组转换为C#数组/数据集

将PHP数组转换为C#数组/数据集,c#,php,arrays,parsing,C#,Php,Arrays,Parsing,我正在尝试编写一个简单的Windows窗体应用程序,以简化基于PHP的语言文件的翻译 表单应用程序非常简单: 加载PHP文件 从php数组创建C#数组(有关php的详细信息,请参见下文) 对于数组中的每个项目,显示两个框:原始+翻译 用户在框2中输入他的翻译 用户单击下一步,重复步骤3+4 用户单击“保存”,转换后的数组将保存到新文件中 PHP文件(language.PHP)的性质最简单: <?php $language['errormsg'] = 'This is my error me

我正在尝试编写一个简单的Windows窗体应用程序,以简化基于PHP的语言文件的翻译

表单应用程序非常简单:

  • 加载PHP文件
  • 从php数组创建C#数组(有关php的详细信息,请参见下文)
  • 对于数组中的每个项目,显示两个框:原始+翻译
  • 用户在框2中输入他的翻译
  • 用户单击下一步,重复步骤3+4
  • 用户单击“保存”,转换后的数组将保存到新文件中
  • PHP文件(language.PHP)的性质最简单:

    <?php
    $language['errormsg'] = 'This is my error message';
    $language['forward'] = 'Forward';
    $language['testing'] = 'Beta';
    ?>
    
    
    
    如何将这个简单的PHP文件“转换”(解析)为C#数组、数据集或任何我可以循环的东西?
    通过
    System.IO.file.ReadAllText将文件作为字符串加载很容易,我只是不知道如何以智能方式解析它,而不是编写自己的PHP解析器,我建议使用内置PHP函数将数据输出为C#可读的格式,如XML或JSON


    然后,您的简单Windows窗体应用程序可以本机读取数据。

    我建议使用正则表达式。加载文件后,运行一个正则表达式,搜索数组语法并提取必要的位,然后将这些位放入
    字典中

    要循环浏览字典,请执行以下操作

    foreach (var message in myDictionary)
    {
        // message.Key or message.Value to access the bits
    }
    

    如果您想从php文件中获取数据,可以使用Regex类。这些是正则表达式。

    这里有一个正则表达式,用于选择单引号中包含的值,这是您实际需要的全部

    '[^'\r\n]*'
    
    例如:

      string text = @"$language['errormsg'] = 'This is my error message';";
      string pat = @"'[^'\r\n]*'";
    
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);
      Match m = r.Match(text);
      while (m.Success) 
      {
         Console.WriteLine(m.Value);
         m = m.NextMatch();
      }
    
    输出:

    'errormsg'
    'This is my error message'
    
    还要注意的是,您可以使用

    foreach (string line in File.ReadLines(@"[your php file path]"))
    {
       // process line
    }