文本文件 - 定义占位符,通过PHP读取 - 在网站上生成HTML/CSS



我想在WebServer上排入.txt文件。

通过PHP,我想将.txt文件的内容放置在网站的起点上。

我想用占位置代码的文本文件,例如此表格

[title]

lorem ipsum dolor sit amet,contertur sadipscing elitr,sed diamomod eirmod临时启动ut ut labore et dolore and dolore magna alquyam

[break]

[标题]

lorem ipsum dolor sit amet,contertur sadipscing elitr,sed diamomod eirmod临时启动ut ut labore et dolore and dolore magna alquyam

占位符应自动生成CSS或文本的HTML,例如[title] = h1或[brek] =</br>

所以我的问题,我该怎么做?

您需要解析文件的内容:

<?php
$tokens = array(
  'title'    => array('type' => 'multi-line', 'tag' => 'h1'),
  'break'    => array('type' => 'single',  'tag' => 'br'),
  'headline' => array('type' => 'single',  'tag' => 'hr')
);
$currentToken = null;
// Loop
foreach (file('input.txt') as $line) {
  if(strlen($line)==0)//empty case
    continue;
  //check tags
  if(preg_match('/[(w+)]/', $line, $match)){
    if(isset($tokens[strtolower($match[1])])) {
      //multi-line case
      if($currentToken != null and $currentToken['type'] == 'multi-line') {
        echo "</{$currentToken['tag']}>"; //close multi-line Tag
      }
      $currentToken = $tokens[strtolower($match[1])];
      //single and multi-line
      echo ( $currentToken['type'] == 'single')?
        "n<{$currentToken['tag']}/>": // print a single tag
        "<{$currentToken['tag']}>"     //open multiline tag
      ;
    }
  } else {
    echo $line;
  }
}

引用 @13ruce1337,您正在寻找模板引擎。PHP中有很多,最常见的是树枝和聪明。

您可以创建自己的系统,但这是一个复杂的系统,并且有很多错误的可能性,我不建议您在Abilites中建立一个定期使用。但是,这是一个非常好的学习练习。

尝试学习一些正则表达式,然后写一些代码。

这是一个小例子,也许太虚弱了,但这是一个很好的开始:

<?php
$fp = fopen('/tmp/test.txt','r');
while(!feof($fp))
{
    $content = trim(fgets($fp,4096));
    if(!$content) continue;
    //see if this is a tag? if it is, set the tag name;
    if(preg_match('/[(w+)]/', $content,$match))
    {
        $tagname = $match[1];
    }
    else//if it is not a tag,then its the content.
    {
        $tagname = $tagname ? $tagname : 'div';
        echo "<{$tagname}>{$content}</{$tagname}>n";
    }
}

但是!要发明新的标记语言不是一个好主意,请使用HTML或Markdown是更好的解决方案。

如果您只想在不写标签的情况下写HTML,Markdown是一个不错的选择;

相关内容

  • 没有找到相关文章

最新更新