2011-09-26 6 views
29

나는 fopen을 사용하려했지만 파일 끝 부분에 내용을 추가하기 만했다. PHP에서 모든 내용을 새로운 내용으로 덮어 쓸 수 있습니까? 당신이 fopen() 붙어 있다면PHP에서 파일 내용을 새 내용으로 덮어 쓰려면 어떻게해야합니까?

+0

는 소리 다 도착까지 제거 명령을를 개최 그냥. 'w'모드를 사용했는지 확인하십시오. * 쓰기 전용으로 엽니 다. 파일 포인터를 파일의 시작 부분에 놓고 길이가 0 인 파일을 자릅니다. 파일이 존재하지 않으면 생성을 시도하십시오. * – animuson

답변

56

사용 file_put_contents() 또는

file_put_contents('file.txt', 'bar'); 
echo file_get_contents('file.txt'); // bar 
file_put_contents('file.txt', 'foo'); 
echo file_get_contents('file.txt'); // foo 

, 당신은 w 또는 w+ 모드를 사용할 수 있습니다 : 쓰기 전용 열기 'w'

을; 파일 포인터를 파일의 시작 부분에 놓고 길이가 0 인 파일을 자릅니다. 파일이 없으면 파일을 만듭니다.

'w +' 읽기 및 쓰기 용으로 열립니다. 파일 포인터를 파일의 시작 부분에 놓고 길이가 0 인 파일을 자릅니다. 파일이 없으면 파일을 만듭니다. 당신이 당신의 서버를 완벽하게 제어 할 수 있습니다 또는 경우

+5

'fopen'은 많은 경우에 적합한 도구입니다. 'file_put_contents'와'file_get_contents'는 대용량 문자열에 종종 오용되어 성능을 해칩니다. –

+6

file_put_contents는 기존 콘텐츠를 덮어 쓰지 않고 그냥 끝에 추가합니다. – dlofrodloh

1
$fname = "database.php"; 
$fhandle = fopen($fname,"r"); 
$content = fread($fhandle,filesize($fname)); 
$content = str_replace("192.168.1.198", "localhost", $content); 

$fhandle = fopen($fname,"w"); 
fwrite($fhandle,$content); 
fclose($fhandle); 
+5

이 질문에 대답 할 수 있지만이 코드가 어떻게 도움이되는지에 대한 설명을하는 것이 좋습니다. – vard

1

, 왜 "보장"작업 전에 파일을 제거하여 주위를 조정하지?

$wait=exec('rm -r -f myfile.txt'); 
file_put_contents('myfile.txt','new content'); 

$ 여기 대기가 당신이 사고에 'A'모드를 예전처럼

관련 문제