PHP에서 파일에 쓰는 방법?


108

무료 PHP 지원 서버에이 스크립트가 있습니다.

<html>
<body>

<?php
$file = fopen("lidn.txt","a");


fclose($file);
?>

</body>
</html>

파일을 생성 lidn.txt하지만 비어 있습니다.

어떻게 파일을 만들고 그 안에 "Cats chase mice"줄을 쓸 수 있습니까?

답변:


153

다음과 같은 상위 수준 함수를 사용할 수 있습니다.

file_put_contents($filename, $content);

호출 동일하다 fopen(), fwrite()그리고 fclose()파일에 데이터를 연속적으로 기록하는.

문서 : file_put_contents


3
참고 file_put_contents()로 PHP5에서만 작동합니다. 이 경우에는 문제가 아닌 것 같지만 (결국 답변이 수락 자입니다) PHP4.x를 실행하는 호스트가 여전히있을 수 있습니다.
Duroth 2009

2
매우 중요한 참고 사항 : file_put_contents ()는 fopen ()에 비해 메모리 악몽입니다. 나는 그것을 사용하는 것을 좋아하지만 대용량 파일을 처리 할 때 데이터를 "스트리밍"할 수 있기를 원합니다. PHP는 내부 메모리로 최종 파일 크기의 배수가 많이 필요하므로이 함수를 사용할 때 염두에 두십시오. 적은 양의 데이터의 경우 사용하기 쉽기 때문에 권장합니다.

1
그런 다음 file_put_contents ($ filename, $ other_stream)를 사용합니다. 이것은 매우 메모리 효율적인 stream_copy_to_stream-)을 사용하는 것과 동일합니다.
Savageman

@Duroth는 PHP5에서만 작동합니까 아니면 PHP5에서만 작동합니까? 두 가지가 있습니다.
Xsmael

2
@Xsmael 2009 년의 먼 과거에는 아닙니다;) PHP7은 그 당시에는 없었습니다. 그러나 네, put_file_contents()PHP5에서 처음 소개되었으며 이후 버전에서도 포함되었습니다.
Duroth

88

fwrite () 고려 :

<?php
$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase mice');
fclose($fp);
?>

당신은 당신이 읽을 및 쓰기 파일 당신이 참조 할 수 있습니다 방법에 대한 세부 사항에 대한 file_put_contents를 사용할 수 있습니다 또한 위의 코드를 사용할 수 있습니다 techflirt.com/file-handling-in-php
Ankur 쿠마르 싱을

@sathish 우리가 파일을 (닫지 않고 파일을 읽을 어떻게 위와 같이 파일에 작성 후 fclose($fp) ) 나는 시도했다 $fp = fopen('lidn.txt', 'w+');, $fp = fopen('lidn.txt', 'a+');그러나 어느 쪽도 그들 중은 일하지
Kasun Siyambalapitiya에게


10
$text = "Cats chase mice";
$filename = "somefile.txt";
$fh = fopen($filename, "a");
fwrite($fh, $text);
fclose($fh);

너는 사용한다 fwrite()


위와 같이 파일에 쓴 후 파일 ( fclose($fh)) 을 닫지 않고 파일을 읽는 방법은 다음과 같습니다 $fh = fopen('lidn.txt', 'w+');.` $ fh = fopen ( 'lidn.txt', 'a +'); `그러나 어느 쪽도 그들 중은 일하지
Kasun Siyambalapitiya

10

파일을 작성하는 것은 쉽습니다.

$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase mice');
fclose($fp);

6

다음 코드를 사용하여 웹 디렉토리에 파일을 작성합니다.

write_file.html

<form action="file.php"method="post">
<textarea name="code">Code goes here</textarea>
<input type="submit"value="submit">
</form>

write_file.php

<?php
// strip slashes before putting the form data into target file
$cd = stripslashes($_POST['code']);

// Show the msg, if the code string is empty
if (empty($cd))
    echo "Nothing to write";

// if the code string is not empty then open the target file and put form data in it
else
{
    $file = fopen("demo.php", "w");
    echo fwrite($file, $cd);

    // show a success msg 
    echo "data successfully entered";
    fclose($file);
}
?>

이것은 작동하는 스크립트입니다. 사이트에서 사용하려면 양식 작업 의 URL 과 fopen () 함수 의 대상 파일 을 변경 하십시오.

행운을 빕니다.


1
방금 PHP를 작성하기 시작했지만 텍스트 파일을 작성하는 것이 아니라 "demo.php"URL을 참조하여 즉시 실행할 수있는 서버에 PHP 코드 파일을 작성하는 것 같습니다. 누군가 서버에 악성 PHP 코드를 작성하고 즉시 실행할 수 있습니다. 나는 이것이 당신이 당신 자신의 코드를 테스트 할 수 있다고 가정하지만 사람들은이 특정 구현의 위험에 대해 경고해야합니다. (존재가 같은 I을했다 그리고 우리가 그것을 자신에게 의지)
RufusVS

6

파일에 쓰려면 PHP다음 단계를 수행해야합니다.

  1. 파일 열기

  2. 파일에 쓰기

  3. 파일 닫기

    $select = "data what we trying to store in a file";
    $file = fopen("/var/www/htdocs/folder/test.txt", "a");
    fwrite($file  , $select->__toString());
         fclose($file );
    

6

단계는 다음과 같습니다.

  1. 파일 열기
  2. 파일에 쓰기
  3. 파일 닫기

    $select = "data what we trying to store in a file";
    $file = fopen("/var/www/htdocs/folder/test.txt", "w");        
    fwrite($file, $select->__toString());
    fclose($file);

5

fwrite()smidgen은 더 빠르며 file_put_contents()어쨌든 그 세 가지 방법을 감싸는 래퍼이므로 오버 헤드를 잃을 것입니다.

file_put_contents (파일, 데이터, 모드, 컨텍스트) :

file_put_contents파일에 문자열을 씁니다.

FILE_USE_INCLUDE_PATH가 설정되어있는 경우 파일 이름 사본의 포함 경로 확인 파일이 없으면 파일을 생성 한 다음 LOCK_EX가 설정되어 있으면 파일을 열고 파일을 잠그고, FILE_APPEND가 설정되어 있으면 파일을 잠급니다. 파일의 끝으로 이동합니다. 그렇지 않으면 파일 내용을 지 웁니다. 데이터를 파일에 쓰고 파일을 닫고 잠금을 해제합니다. 이 함수는 성공하면 파일에 기록 된 문자 수를 반환하고 실패하면 FALSE를 반환합니다.

fwrite (파일, 문자열, 길이) :

fwrite오픈] 파일을 함수에 쓰기는 파일의 끝에서 중지하거나 둘 중 지정된 길이를 도달 할 때 먼저 지치는 지 한번 봅시다이는 반환에게 실패에 기록 된 바이트 또는 FALSE의 수를 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.