몽상실현개발주의

[생활코딩] 11.1 php 파일 제어 ~ 11.4 디렉토리 제어하기 본문

Language/php

[생활코딩] 11.1 php 파일 제어 ~ 11.4 디렉토리 제어하기

migrationArc 2021. 5. 13. 18:29

[생활코딩] 11.1 php 파일 제어 ~ 11.4 디렉토리 제어하기

생활코딩 php 강좌

11. 파일

11.1 php 파일 제어

<?php
$file = 'readme.txt';
$newfile = 'example.txt.bak';
if (!copy($file, $newfile)){
    echo 'failed to copy $file...\n';
}
?>
  • readme.txt 파일의 내용이 복사되어 example.txt.bak 으로 새로운 파일이 생성

 

<?php
unlink('deleteme.txt');
?>
  • unlink('file') : 파일 삭제 함수

 

 

11.2 파일 읽고 쓰기

<?php
$file = './readme.txt';
echo file_get_contents($file);
?>
  
// ./readme.txt 의 내용을 출력
  • file_get_contents('파일')
    • 텍스트로 이루어진 파일을 읽어서 문자열을 리턴
    • php 레퍼런스
    • fread

 

<?php
$homepage = file_get_contents("https://www.~~");
echo homepage
?>
  
// 받아온 해당 페이지 내용을 출력

 

 

 

<?php
$file = './writeme.txt';
file_put_contents($file, 'coding everybody');
?>
  • file_put_contents(파일, 내용)
    • 입력된 내용을 해당하는 파일에 작성 하는 함수

 

  • fopen(파일, mode)
    • 파일을 여는 함수
    • 파일을 열고 난 뒤의 행위도 mode 설정으로 가능
      • 읽기
      • 쓰기
      • 덮어쓰기
      • 등...

 

  • fwrite, fread, fclose 등의 파일을 제어하기 위한 함수들이 존재

 

 

11.3 파일을 다루는 과정에서 발생 가능한 문제들

  • 권한문제
    • Permission Denied
    • 파일이나 폴더의 권한이나 소유권을 변경 해 주어야함
      • 권한 변경 : sudo chmod 권한 파일/폴더
      • 소유권 변경 : sudo chown 소유자 파일/폴더
  • php 서버 접근시 소유권 변경
    • Linux : sudo chown www-data .
    • Mac : sudo chown _www .

 

<?php
$filename = 'readme.txt';

if (is_readable($filename)){
    echo 'The file is readable';
} else {
    echo 'The file is not readble';
}
?>
  • File 의 read 가능 여부 확인

 

<?php
$filename = 'readme.txt';

if (is_writeable($filename)){
    echo 'The file is writeable';
} else {
    echo 'The file is not writeable';
}
?>
  • File 의 write 가능 여부 확인

 

<?php

$filename = 'readme.txt';

if (file_exists($filename)){
    echo "The file {$filename} exists";
} else {
    echo "The file {$filename} not exists";
}

?>
  • File 의 존재 여부 확인

 

 

11.4 디렉토리 제어하기

  • php Application 이 동작되는 경로는 php file 이 존재하는 디렉토리 기준이다.

 

<?
echo getcwd().'<br/>';
chdir('../');
echo getcwd().'<br/>';
?>

// ~/studyPhp/directory
// ~/studyPhp
  • getcwd() : 현재 php application file 이 존재하는 directory 를 출력
  • chdir() : directory 를 이동

 

<?php

$dir    = './';
$files0 = scandir($dir);
$files1 = scandir($dir, 1);
$files2 = scandir($dir, 2);

print_r($files0);
echo "<br/>";
print_r($files1);
echo "<br/>";
print_r($files2);
echo "<br/>";
?>
  
// Array ( [0] => . [1] => .. [2] => 1.php [3] => 2.php )
// Array ( [0] => 2.php [1] => 1.php [2] => .. [3] => . )
// Array ( [0] => . [1] => .. [2] => 2.php [3] => 1.php )
  • scandir(폴더위치, 옵션) : directory 에 대한 file list 를 호출
    • 옵션( 0, 1, 2 ) 에 따라 정렬 순서가 바뀜

 

<?php
mkdir("1/2/3/4/", 777, true);
?>
  • mkdir(디렉토리명, 권한, 옵션) : 디렉토리를 만드는 함수
    • 옵션이 true 일 경우 디렉토리를 만든느 경로가 존재하지 않을 때, 경로에 해당하는 디렉토리를 새로 생성

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

Comments