在PHP中写入文件时奇怪的字符?

时间:2017-04-22 20:51:54

标签: php

我正在尝试追加“.php”之后的网址部分。到文本文件中的新行,然后打印出该文件中的所有内容,但每次运行fwrite()后我都会得到一个奇怪的字符。

这是我的代码:

<?php
function curPageURL() {
    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {
        $pageURL .= "s";
    }
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    } else {
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}
$pattern = "/http:\/\/www.mywebsite.com\/firstphpthing.php\?(.*)/";
preg_match($pattern,curPageUrl(),$matches);
$content = $matches[1];
if(!file_exists("testfile.txt")) {
    $f = fopen("testfile.txt","w");
    fwrite($f,"");
    fclose($f);
}
$f = fopen('testfile.txt','a');
fwrite($f,PHP_EOL . $content);
fclose($f);
$f = fopen('testfile.txt','r') or die("can't open file");
while ($line = fgets($f)) {
    $line = preg_replace('/\s+/', ' ', $line);
    if(!preg_match("/^\s+$/",$line,$matches)) {
        echo $line;
    }
}
fclose($f);
php?>

当我通过多次刷新http://www.mywebsite.com/firstphpthing.php?test进行测试时,它给了我这个:

  

测试[F测试[F测试[F测试[F测试[F测试[F测试[F测试[F测试[F测试

而不是在新行上看到它们,我尝试将这个小盒子复制粘贴到google中并且它说它是“%1B”,这对应于url编码中的escape,但我不知道如何摆脱它(另外,我不知道“[F”部分来自哪里)。

它也可能是我在(000webhost.com)运行它的平台,可能以奇怪的方式配置了某些东西?

我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您从某个地方复制链接,一些奇怪的空白字符可能会混入,这反过来会导致问题。尝试用手键入链接以确保没有空白区域。也可以在返回之前尝试修剪网址,这可能有所帮助。

return trim($pageURL);

我确定这可以作为评论而不仅仅是答案,但由于我无法评论,而且我认为它可能会有所帮助,我会把它留在这里。