본문으로 이동

큰숲백과 미디어위키 1.43 및 업데이트 완료되었습니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

작은숲:위키노트/PHP/사용법: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
잔글 문자열 찾아 바꾸기 - "분류:공유" 문자열을 "분류:위키노트/공유" 문자열로
잔글 Utolee90님이 PHP/사용법 문서를 넘겨주기를 만들지 않고 작은숲:위키노트/PHP/사용법 문서로 이동했습니다: 위키노트 문서 작은숲으로 이동
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
1번째 줄: 1번째 줄:
강력한 스크립트 언어! 가벼운 웹 프로그래밍을 하기에 적합한 언어이다.
강력한 스크립트 언어! 가벼운 웹 프로그래밍을 하기에 적합한 언어이다.
== 자주 쓰는 함수 ==
== 자주 쓰는 함수 ==
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
bool in_array(mixed $needle, array $haystack [, bool $strict = FALSE ]);
bool in_array(mixed $needle, array $haystack [, bool $strict = FALSE ]);
7번째 줄: 7번째 줄:
bool mkdir(string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]]);
bool mkdir(string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]]);
?>
?>
</source>
</syntaxhighlight>
== PHP 프레임워크, Laravel ==
== PHP 프레임워크, Laravel ==
[[라라벨]](Laravel). 2015년 11월 14일에 나온 [https://www.xpressengine.com/ XE] [http://xpressengine.io/docs/3.0 3.0]에서 쓰기 시작한 PHP 프레임워크. Laravel을 설치하기 위해서는 PHP 5.3.7 이상의 버전과 MCrypt PHP Extension이 필요하다.
[[라라벨]](Laravel). 2015년 11월 14일에 나온 [https://www.xpressengine.com/ XE] [http://xpressengine.io/docs/3.0 3.0]에서 쓰기 시작한 PHP 프레임워크. Laravel을 설치하기 위해서는 PHP 5.3.7 이상의 버전과 MCrypt PHP Extension이 필요하다.
15번째 줄: 15번째 줄:
== PHP 활용 ==
== PHP 활용 ==
=== 서버 로드 확인 ===
=== 서버 로드 확인 ===
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
$load = @exec("/usr/bin/uptime");
$load = @exec("/usr/bin/uptime");
24번째 줄: 24번째 줄:
if ($load) echo "<br />\nLoad average: {$load}\n";
if ($load) echo "<br />\nLoad average: {$load}\n";
?>
?>
</source>
</syntaxhighlight>
=== 아파치에서 PHP가 구동되지 않을 때 ===
=== 아파치에서 PHP가 구동되지 않을 때 ===
[[위키노트:아파치|아파치]] <code><nowiki>httpd.conf</nowiki></code> 설정 파일에 아래 내용 추가.
[[작은숲:위키노트/아파치|아파치]] <code><nowiki>httpd.conf</nowiki></code> 설정 파일에 아래 내용 추가.
<source lang="apache">
<syntaxhighlight lang="apache">
AddType application/x-httpd-php .php .html .htm .php3 .php5
AddType application/x-httpd-php .php .html .htm .php3 .php5
</source>
</syntaxhighlight>
=== timezone 설정하기 ===
=== timezone 설정하기 ===
최근 버전의 PHP에서는 timezone이 설정되지 않으면 아래와 같은 오류를 뿜어낸다.
최근 버전의 PHP에서는 timezone이 설정되지 않으면 아래와 같은 오류를 뿜어낸다.
36번째 줄: 36번째 줄:
</pre>
</pre>
이를 해결하기 위해 소스 상단에 아래 코드를 넣거나
이를 해결하기 위해 소스 상단에 아래 코드를 넣거나
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
date_default_timezone_set('Asia/Seoul');
date_default_timezone_set('Asia/Seoul');
?>
?>
</source>
</syntaxhighlight>
<code><nowiki>php.ini</nowiki></code> 파일에 timezone 설정을 추가한다.
<code><nowiki>php.ini</nowiki></code> 파일에 timezone 설정을 추가한다.
<pre>
<pre>
47번째 줄: 47번째 줄:
''via'' [http://ra2kstar.tistory.com/169 PHP timezone 설정하기]
''via'' [http://ra2kstar.tistory.com/169 PHP timezone 설정하기]
=== 배열이나 객체를 문자열로 만든 후 gzip 함수로 압축 ===
=== 배열이나 객체를 문자열로 만든 후 gzip 함수로 압축 ===
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
$array = array( ... );
$array = array( ... );
55번째 줄: 55번째 줄:
print_r($array);
print_r($array);
?>
?>
</source>
</syntaxhighlight>
위에서 <code>gzinflate()</code> 함수의 두번째 인자로 9 정도 주면 압축률은 더 좋아지지만 리소스를 많이 잡아먹고 압축률이 낮을 때보다 시간이 더 오래 걸린다.
위에서 <code>gzinflate()</code> 함수의 두번째 인자로 9 정도 주면 압축률은 더 좋아지지만 리소스를 많이 잡아먹고 압축률이 낮을 때보다 시간이 더 오래 걸린다.
''via'' [http://blog.naver.com/PostView.nhn?blogId=it_informer&logNo=150152515849 PHP에서 array를 string 형태로 고효율 압축, 변환하기]
''via'' [http://blog.naver.com/PostView.nhn?blogId=it_informer&logNo=150152515849 PHP에서 array를 string 형태로 고효율 압축, 변환하기]
=== 운영체제가 [[위키노트:윈도우|윈도우]]인지 확인하기 ===
=== 운영체제가 [[작은숲:위키노트/윈도우|윈도우]]인지 확인하기 ===
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
function is_windows() {
function is_windows() {
     return (DIRECTORY_SEPARATOR == '\\' ? true : false);
     return (DIRECTORY_SEPARATOR == '\\' ? true : false);
}?>
}?>
</source>
</syntaxhighlight>
''via'' [http://php.net/tempnam tempnam() 함수 레퍼런스]
''via'' [http://php.net/tempnam tempnam() 함수 레퍼런스]
=== MSSQL의 datetime 형식의 필드 값 가져오기 ===
=== MSSQL의 datetime 형식의 필드 값 가져오기 ===
PHP에서 [[MSSQL]]의 datetime 형식의 필드의 값을 가져오면 <code><nowiki>Mar 03 2014 11:04AM</nowiki></code>와 같은 형태로 출력한다. 이를 <code><nowiki>2014-03-03 11:04:19</nowiki></code> 형태로 출력하고자 할 때는 <code><nowiki>php.ini</nowiki></code> 파일을 수정하거나 <code><nowiki>ini_set()</nowiki></code> 함수를 써서 설정을 변경해주도록 하자.
PHP에서 [[MSSQL]]의 datetime 형식의 필드의 값을 가져오면 <code><nowiki>Mar 03 2014 11:04AM</nowiki></code>와 같은 형태로 출력한다. 이를 <code><nowiki>2014-03-03 11:04:19</nowiki></code> 형태로 출력하고자 할 때는 <code><nowiki>php.ini</nowiki></code> 파일을 수정하거나 <code><nowiki>ini_set()</nowiki></code> 함수를 써서 설정을 변경해주도록 하자.
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
// mssql datetime format
// mssql datetime format
74번째 줄: 74번째 줄:
ini_set('mssql.datetimeconvert', 'Off');
ini_set('mssql.datetimeconvert', 'Off');
?>
?>
</source>
</syntaxhighlight>
=== 하위 디렉토리까지 한꺼번에 만들기 ===
=== 하위 디렉토리까지 한꺼번에 만들기 ===
<source lang="php">
<syntaxhighlight lang="php">
<?php
<?php
mkidr("/home/serv/archives/2014/0320", 0755, true);
mkidr("/home/serv/archives/2014/0320", 0755, true);
?>
?>
</source>
</syntaxhighlight>
== 같이 보기 ==
== 같이 보기 ==
* [[Zend optimizer]]
* [[Zend optimizer]]
* [[MMCache]]
* [[MMCache]]
* [[위키노트:PHP 함수]]
* [[작은숲:위키노트/PHP 함수]]
* [[위키노트:정규 표현식|정규 표현식]]
* [[작은숲:위키노트/정규 표현식|정규 표현식]]
* [[위키노트:EUC2UTF|EUC2UTF]]
* [[작은숲:위키노트/EUC2UTF|EUC2UTF]]
* [[MVC]]
* [[MVC]]
== 참고 ==
== 참고 ==

2022년 5월 7일 (토) 19:19 기준 최신판

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

자주 쓰는 함수

<?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);
?>

같이 보기

참고