작은숲:위키노트/PHP/사용법

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
(PHP/사용법에서 넘어옴)

강력한 스크립트 언어! 가벼운 웹 프로그래밍을 하기에 적합한 언어이다.

자주 쓰는 함수

<?php
bool in_array(mixed $needle, array $haystack [, bool $strict = FALSE ]);
mixed strpos(string $haystack, mixed $needle [, int $offset = 0 ]);
bool mkdir(string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]]);
?>

PHP 프레임워크, Laravel

라라벨(Laravel). 2015년 11월 14일에 나온 XE 3.0에서 쓰기 시작한 PHP 프레임워크. Laravel을 설치하기 위해서는 PHP 5.3.7 이상의 버전과 MCrypt PHP Extension이 필요하다.

PHP DOM 파서, Goutte

Goutte(구뜨, 프랑스어, 물방울). Simple HTML DOM Parser의 거동이 약간 불안정하고, 복잡한 태그의 경우 정확히 해석하지 못하는 점이 있다. 실행 속도도 빠르고, 메모리도 적게 먹고, 태그 분석도 정확하게 하는가 보다. 다만 사용법이 좀 까다로운 듯. via 표준국어대사전 사전 데이터 만들기 작업후기

PHP 활용

서버 로드 확인

<?php
$load = @exec("/usr/bin/uptime");
if ($load and preg_match("/load average: ([,\.\d\s]+)$/", $load, $matches))
    $load = $matches[1];
else
    $load = null;
if ($load) echo "<br />\nLoad average: {$load}\n";
?>

아파치에서 PHP가 구동되지 않을 때

아파치 httpd.conf 설정 파일에 아래 내용 추가.

AddType application/x-httpd-php .php .html .htm .php3 .php5

timezone 설정하기

최근 버전의 PHP에서는 timezone이 설정되지 않으면 아래와 같은 오류를 뿜어낸다.

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Seoul' for 'KST/9.0/no DST' instead in index.php on line 138

이를 해결하기 위해 소스 상단에 아래 코드를 넣거나

<?php
date_default_timezone_set('Asia/Seoul');
?>

php.ini 파일에 timezone 설정을 추가한다.

date.timezone = Asia/Seoul

via PHP timezone 설정하기

배열이나 객체를 문자열로 만든 후 gzip 함수로 압축

<?php
$array = array( ... );
$str_array = base64_encode(gzdeflate(serialize($array)));
print_r($str_array);
$array = unserialize(gzinflate(base64_decode($array_str)));
print_r($array);
?>

위에서 gzinflate() 함수의 두번째 인자로 9 정도 주면 압축률은 더 좋아지지만 리소스를 많이 잡아먹고 압축률이 낮을 때보다 시간이 더 오래 걸린다. via PHP에서 array를 string 형태로 고효율 압축, 변환하기

운영체제가 윈도우인지 확인하기

<?php
function is_windows() {
    return (DIRECTORY_SEPARATOR == '\\' ? true : false);
}?>

via tempnam() 함수 레퍼런스

MSSQL의 datetime 형식의 필드 값 가져오기

PHP에서 MSSQL의 datetime 형식의 필드의 값을 가져오면 Mar 03 2014 11:04AM와 같은 형태로 출력한다. 이를 2014-03-03 11:04:19 형태로 출력하고자 할 때는 php.ini 파일을 수정하거나 ini_set() 함수를 써서 설정을 변경해주도록 하자.

<?php
// mssql datetime format
// Off - 2010-02-16 09:14:00
ini_set('mssql.datetimeconvert', 'Off');
?>

하위 디렉토리까지 한꺼번에 만들기

<?php
mkidr("/home/serv/archives/2014/0320", 0755, true);
?>

같이 보기

참고