WEB开发网
开发学院WEB开发PHP 用PHP开发健壮的代码:有效地使用变量 阅读

用PHP开发健壮的代码:有效地使用变量

 2008-02-15 18:32:16 来源:WEB开发网   
核心提示:您可以编写负责解析工作的函数,这样您可以在任何地方使用它而不用做任何修改,用PHP开发健壮的代码:有效地使用变量(4),让我们将该任务分为一些更简单的步骤:逐行地读取文件 丢弃一行中 # 号字符后的所有内容 以等号为界,将一行分为两个字符串,我倾向于使用 define() 函数进行定义,因为一旦设置了值就不能在运行时更

  您可以编写负责解析工作的函数,这样您可以在任何地方使用它而不用做任何修改。让我们将该任务分为一些更简单的步骤:
  
  逐行地读取文件
  丢弃一行中 # 号字符后的所有内容
  以等号为界,将一行分为两个字符串,并丢弃等号
  除去字符串中的额外空格
  相应声明变量
  要编写最后一步,只有使用可变变量才行。清单 6 显示了代码:
  
  清单 6. 解析函数
  
  php
  /* conf_parser.php */
  
  /* Give the filename with path info whenever possible. */
  function conf_parse($file_name) {
  
  // @ in front makes the function quiet. Error messages are not printed.
  $fp = @fopen($file_name, "r") or die("Cannot open $file_name");
  
  while ($conf_line = @fgets($fp, 1024)) {
  $line = ereg_replace("#.*$", "", $line);  // Do stripping after hashes.
  if ($line == "") continue;  // Drop blank lines resulting from the previous step.
  list($name, $value) = explode ('=', $line);  // Drop '=' and split.
  $name = trim($name);  // Strip spaces.
  $$name= trim($value);  // Define the said variable. 
  }
  fclose($fp) or die("Can't close file $file_name");
  }
  ?>
  用正则表达式除去 # 号。尽管这里的表达式很简单,但要知道复杂的正则表达式会消耗大量的 CPU 时间。此外,为每页反复地解析配置文件不是一个好的决策。更好的选择是:使用变量或定义语句将已解析的输出存储为 PHP 脚本。我倾向于使用 define() 函数进行定义,因为一旦设置了值就不能在运行时更改它。可以在参考资料中找到一个能够根据您的需要加以修改的实现。

上一页  1 2 3 4 

Tags:PHP 开发 健壮

编辑录入:coldstar [复制链接] [打 印]
赞助商链接