2017-04-22 95 views
0

我試圖追加「.php?」之後的url部分。到文本文件中的新行,然後打印出該文件中的所有內容,但每次運行fwrite()後都會出現奇怪的字符。寫入PHP文件時奇怪的字符?

這裏是我的代碼:

<?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檢驗

,而不是看到他們每一個新行,我試過的複製粘貼那個小盒子放到谷歌和它說,它的「% 1B「,其中更正esponds逃避url編碼,但我不知道如何擺脫它(另外,我不知道「[F」部分來自哪裏)。

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

我很感激任何幫助。

回答

0

如果您從某處複製鏈接,某些奇怪的空白字符可能會混入,這反過來會導致問題。嘗試手動輸入鏈接以確保您沒有空白區域。也可以在返回之前嘗試修剪網址,這可能會有所幫助。

return trim($pageURL); 

我敢肯定,這將有資格作爲一個評論,超過一個答案,但因爲我不能評論,我想這可能是有益的,我會離開這裏。