Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中重新格式化文本文件_Php_File - Fatal编程技术网

在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;
    }
}


?>