【问题标题】:Function of this particular PHP class这个特定 PHP 类的功能
【发布时间】:2014-04-12 07:25:37
【问题描述】:

我是 PHP“类”的新手。我正在寻找一个可以帮助我创建 PHP 模板的脚本,我找到了这个,但我似乎无法理解这里发生了什么。谁能详细解释一下。我将不胜感激。谢谢..

<?php
class skin {
    var $filename;

public function __construct($filename) {
    $this->filename = $filename;
}

public function mk($filename) {
    $this->filename = $filename;
    return $this->make();
}

public function make() {
    global $CONF;
    $file = sprintf('./'.$CONF['theme_path'].'/'.$CONF['theme_name'].'/html/%s.html', $this->filename);
    $fh_skin = fopen($file, 'r');
    $skin = @fread($fh_skin, filesize($file));
    fclose($fh_skin);

    return $this->parse($skin);
}

private function parse($skin) {
    global $TMPL, $LNG;

    $skin = preg_replace_callback('/{\$lng->(.+?)}/i', create_function('$matches', 'global $LNG; return $LNG[$matches[1]];'), $skin);
    $skin = preg_replace_callback('/{\$([a-zA-Z0-9_]+)}/', create_function('$matches', 'global $TMPL; return (isset($TMPL[$matches[1]])?$TMPL[$matches[1]]:"");'), $skin);

    return $skin;
}
}
?>

【问题讨论】:

  • 您有什么具体问题吗?我建议你看看这个 - How to Ask - 当你有一个特定的编程相关问题时再回来。

标签: php function class oop templates


【解决方案1】:

在类的开头__construct() 将文件名分配给一个变量,以便在类中的任何地方使用 ($filename)。

然后有一个函数可以解析它parse()

但出于技术目的,此函数嵌套在另一个函数中。 parse() 之前的 private 关键字意味着它可以被类本身使用。

因此,函数make()负责使用parse()

最后一个函数mk() 调用make()

parse() 解析模板。意味着它用模板特殊语法(您必须在模板文件中引用)替换实际最终解析的变量和数据。

make() 函数获取文件的内容,其中的printf() 从给定的参数生成一个可用的完整 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多