在PHP中重新格式化文本文件

时间:2014-09-12 17:10:17

标签: php file

我想从此重新格式化文本文件:

• Name - 5 September 12:19
- Message

对此:

Name (5 September, 12:19)
Message

名称位于粗体文本中,可能是某些迹象表明在消息中前进(-- -- -- --)。这些指示将替换为<hr>。您可以看到整个文本文件here

我想出了this

$url = 'http://erik-edgren.nu/files/history/apg29/jesus-september-2014.txt';
$lines = file($url, FILE_IGNORE_NEW_LINES);

foreach($lines AS $line) {
    $info = explode(' - ', $line);

    if(strlen($info[0]) > '• ') {
        echo '<b>'.str_replace('• ', '', $info[0]).'</b>';
    }

    echo !isset($info[1]) ? '' : ' ('.$info[1].')';
    echo '<br>';
}

但我不知道如何以最好的方式重新格式化文档。关于如何实现这个目标的任何解决方案?

1 个答案:

答案 0 :(得分:0)

这是我要做的基本想法。您可能需要将“•”替换为该字符的unicode。这个脚本可能不起作用,但它总体上知道我会做什么。

<?php
$url = 'http://erik-edgren.nu/files/history/apg29/jesus-september-2014.txt';
$thedata=file_get_contents($url);
$lines=explode(PHP_EOL,$thedata);

 $line1='';
foreach($lines as $a)
{

    if(substr($a,2,2)=='• ')
    {
            $data=explode(' ',$a);
            $line1=$data[1] . ' (' . $data[3] . ' ' . $data[4] . ', ' . $data[5] . ')'.PHP_EOL;
    }
    if(substr($a,2,2)=='- ')
    {
    echo $line1 . substr($a,2) . PHP_EOL;
    }
}


?>