我想在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是一个不错的选择;