在PHP中重新格式化文本文件
我想从以下内容重新格式化文本文件:在PHP中重新格式化文本文件,php,file,Php,File,我想从以下内容重新格式化文本文件: • Name - 5 September 12:19 - Message 为此: Name (5 September, 12:19) Message 其中名称以粗体文本显示,并且可能是消息中的某些指示(-->)。这些指示将替换为。您可以看到整个文本文件 我提出了: $url='1!'http://erik-edgren.nu/files/history/apg29/jesus-september-2014.txt'; $lines=file($url,fi
• Name - 5 September 12:19
- Message
为此:
Name (5 September, 12:19)
Message
其中名称以粗体文本显示,并且可能是消息中的某些指示(-->
)。这些指示将替换为
。您可以看到整个文本文件
我提出了:
$url='1!'http://erik-edgren.nu/files/history/apg29/jesus-september-2014.txt';
$lines=file($url,file\u IGNORE\u NEW\u行);
foreach($line作为$line){
$info=分解(“-”,$line);
如果(strlen($info[0])>“•”){
回显“”。str_替换(“•”,“$info[0])”;
}
echo!isset($info[1])?“:”(“.$info[1]”);
回声“
”;
}
但我不知道如何以最好的方式重新格式化文档。有什么解决办法吗?这是我要做的基本想法。您可能需要将该字符的“•”替换为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;
}
}
?>
这行吗?你只是想把流程流线化吗?我的第一种方法是每次读两行,然后在空白处爆炸。如果第一行不是以圆圈开头,请将第二行移到第一行并阅读新的第二行。。。但是在查看数据之后,您似乎只需要逐行读取内容(在PHP_EOL上分解),读取第一个字符并相应地逐行处理内容。@Ericsh:我提供的代码很有效,正如您在我链接的网页上看到的那样。对我想得到整个TXT文件并重新格式化内容,以便在网站上显示。@Dimitri:Hm。好的。问题是,我不知道如何才能做到这一点:/I在重新格式化文本文件方面是新手,如果您在页面上显示文本,请将PHP_EOL替换为。谢谢,但无论我如何尝试解决问题,我都无法使其正常工作:/I我已经使用的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;
}
}
?>