我正在尝试追加“.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)运行它的平台,可能以奇怪的方式配置了某些东西?
我很感激任何帮助。
答案 0 :(得分:0)
如果您从某个地方复制链接,一些奇怪的空白字符可能会混入,这反过来会导致问题。尝试用手键入链接以确保没有空白区域。也可以在返回之前尝试修剪网址,这可能有所帮助。
return trim($pageURL);
我确定这可以作为评论而不仅仅是答案,但由于我无法评论,而且我认为它可能会有所帮助,我会把它留在这里。