2011-04-26 25 views
2

如何將「$ buffer」值轉換爲字符串,並在fopen和fclose函數外部使用它?謝謝。Php將fopen結果保存到字符串中

$handle = @fopen("http://www.example.com/", "r"); 

if ($handle) { 
    while (!feof($handle)) { 
     $buffer = fgetss($handle, 5000); 

     echo $buffer ; 
    } 

    fclose($handle); 
} 
+0

剛刪除echo $ buffer;並將fgetss的=改爲。=,它將用字符串值構建緩衝區($ buffer)。 – judda 2011-04-26 11:53:21

+0

@judda改爲使用答案。 – 2011-04-26 11:57:17

+0

'fgetss'有點無用。當它們在換行符上運行時,它將錯誤地strip_tags。因此,使用'file_get_contents'之一的答案並在之後應用'strip_tags'。 – mario 2011-04-26 11:59:22

回答

2
$handle = @fopen("http://www.example.com/", "r"); 

$buffer = ''; 
if ($handle) { 
    while (!feof($handle)) { 
     $buffer .= fgetss($handle, 5000); 
    } 

    fclose($handle); 
} 
+0

非常感謝,這正是我想要的。 – JennyL 2011-04-26 12:25:13

2

嘗試file_get_contents()

$buffer = file_get_contents("/my/file.txt"); 
+0

是的請..... – 2011-04-26 11:55:34

0

$緩衝區本身是一個字符串。而不是使用echo打印它,只需將它連接在一起並打印出來,或者在循環結束後一起使用它。

$buffer = ''; 
if ($handle) { 
    while (!feof($handle)) { 
     $buffer .= fgetss($handle, 5000); 
    } 

    fclose($handle); 
} 

//print the whole stuff: 
echo $buffer; 

如果你想用把所有的東西只是沒有其他的處理嘗試:

file_get_contents

1

最簡單的方法是使用的file_get_contents:

$buffer = file_get_contents("http://www.exemple.com"); 
0
$handle = @fopen("http://www.example.com/", "r"); 
$buffers = array(); 

    if ($handle) { 
     while (!feof($handle)) { 
      $buffers[] = fgetss($handle, 5000); 

     } 

     fclose($handle); 
    } 


print_r ($buffers);