'2012/06'에 해당되는 글 2건

Posted on 2012/06/26 14:22
Filed Under Programming/PHP

DNS server, DNS service  

원문 : http://www.sitehis.com/spb3/sboard3/read.php?db=talk&uid=167

개인적으로 perl-레귤라보다 posix-레귤라 함수를 매우 좋아하는 터라,
충격이 큰데요.
추가 자세한 정보가 있으신 분들은 댓글이나 트위터 @sitehis 로 자료 주시면 감사하겠습니다.

PHP 언어에서 POSIX 레귤러함수를
5.3 버전에 deprecated(사용하지말것을경고)하고.
6.0 버전에서는 아예 삭제하겠다는 공지가 올라왔습니다.

처음 듣고 말도 안된다고 하였지만,
소문이아니고 perl 레귤러 함수로 고쳐 써야 하는 것으로 최종 확인하였습니다.

 

  • ereg -> preg_match
  • eregi -> preg_match ( i modifier )
  • ereg_replace -> preg_replace
  • ereg_replace -> preg_replace ( i modifier)
  • split -> preg_split
  • spliti -> preg_split ( i modifier )
  • sql_regcase() -> 없음 알아서..
     
자세한 안내는 다음에서 확인하실 수 있습니다.하나씩 정검하여 봅시다.

급하니깐 E_DEPRECATED 에러메세지를 우선 안 나오게 할려면,
  • error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
  • 혹은 error_reporting(E_ALL ^E_DEPRECATED);
  • 혹은 @ini_set('display_errors', 0);
고쳐버리겠다고요?? 그러면 다음 자동으로 고쳐주는 프로그램을 이용해보세요
ereg()
  • ereg('\.([^\.]*$)', $this->file_src_name, $extension);
  • preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);
  • 레귤러 표현식에 / ... / 로 감싸는 것으로 우선 해결

eregi()

  • eregi('\.([^\.]*$)', $this->file_src_name, $extension);
  • preg_match('/\.([^\.]*$)/i', $this->file_src_name, $extension);
  • 레귤러 표현식에 / ... /i  로 감싸는 것으로 우선 해결

ereg_replace()

  • ereg_replace('[^A-Za-z0-9_]', '', $str);
  • preg_replace('/[^A-Za-z0-9_]/', '', $str);
  • 복잡한 것은 이렇게~
  • $str_new = preg_replace('/' . preg_quote($word) . '/', '', $str_old);
  • 간단하게 이런 방법도 ( / 대신에 별로 사용않하는 # 혹은 `(틸드)를 사용해서 )
  • $str_new = preg_replace("#$word#', '', $str_old);
  • $str_new = preg_replace("`$word`", '', $str_old);

eregi_replace()

  • ereg_replace('[^A-Za-z0-9_]', '', $str);
  • preg_replace('/[^A-Za-z0-9_]/i', '', $str);
  • 복잡한 것은 이렇게~
  • $str_new = preg_replace('/' . preg_quote($word) . '/i', '', $str_old);


관련 게시물(http://www.sitehis.com)

2012/06/26 14:22 2012/06/26 14:22

Posted on 2012/06/26 13:49
Filed Under Programming/PHP

DNS server, DNS service  

출처 : http://smallmir.tistory.com/201


ereg 계열 함수 사용시 오류 메시지.

ereg,eregi,ereg_replace

>>> stripos,str_ireplace,preg_replace,preg_match 등으로 대체

eregi  preg_replace 대체 가능.

eregi('123','123456');

preg_replace('/123/I','123456');

ereg계열에서는 대소문자 구분이

ereg  eregi  구분되었음.

그것을 preg_replace 에서는 /i   추가해주면 된다.

preg_match 같음.


split 함수 사용시 오류

>>> explode 함수로 대체. split  정규식을 지원했으나, explode  지원하지 않음.


session_register 삭제


 

//'eregi 함수사용을 권장하지 않는다' 라는 메세지 출력.

Deprecated: Function eregi() is deprecated in /home/nuhome/web/nux/admin/plugin.php on line 3

파일 수정을 하지 않을시 임시방편


@error_reporting(E_ALL & ~(E_NOTICE | E_DEPRECATED | E_STRICT));


함수 인자에 변수를 참조로 전달할 수 없게됨


<?
function modify($array) {
$array[] = 'zero';
}
$array = array(0, 1, 2);
modify(&$array);

?>


PHP Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of modify(). in test.php on line 8


global 변수를 함수의 인자로 넘길 수 없음.

function test($_REQUEST){

}


magic_quotes_gpc에 대한 이해.

http://blog.naver.com/egirl5?Redirect=Log&logNo=110012870549




register_global off 처리


http://php.net/manual/kr/function.extract.php


사용을 하더라도 보안상 아래 순서에 맞게 덮어써주는 것을 추천합니다.

http://php.net/manual/kr/ini.core.php#ini.variables-order

EGPCS (Environment, Get, Post, Cookie, and Server)

> http://php.net/manual/en/language.variables.superglobals.php


extract($_ENV);

extract($_GET);

extract($_POST);

:




extract($_GET,EXTR_PREFIX_ALL,'_GET_');

extract($_POST,EXTR_PREFIX_ALL,'_POST_');




php 5.3 주요 변경 사항

http://kr.php.net/manual/en/migration53.incompatible.php

php 5.4 주요 변경 사항

http://kr.php.net/manual/en/migration54.incompatible.php

5.4 관련 한글 정리 문서

http://crizin.net/display/dev/What's+New+in+PHP+5.4

2012/06/26 13:49 2012/06/26 13:49

About

by CoCo

Notice

Counter

· Total
: 846588
· Today
: 75
· Yesterday
: 70