본문 바로가기

PHP

[PHP] 메모리 사용량을 통해 memory leak 찾기 PHP를 배치 스크립트처럼 사용하다보니 foreach문에서 리스트 건수가 많아질 수록 서버 메모리 사용량이 올라가는 이슈를 경험했습니다.자주 일어나는 현상은 아니었기에 당황스러워서 memory leak의 원인을 찾을 필요가 있었습니다. 버전 : PHP 5.2.5 메모리 사용량을 알려주는 함수 - memory_get_usage() : http://php.net/manual/en/function.memory-get-usage.php 사용법ex)의심가는 코드의 line 상하에 echo나 log로 디버깅하기 위한 준비를 하면됩니다. foreach ($list as $item) { echo memory_get_usage()." Before \n"; sample_function(); // or Call Obejct..
[PHP] strrpos 함수의 offset 인자 우연히 문자열 시작 단어를 필터링할 필요가 있었음 구글링해보니 Java의 startsWith, endsWith와 같은 함수를 구현한 글이 있었음 - http://stackoverflow.com/questions/834303/startswith-and-endswith-functions-in-php 내부적으로 strrpos를 사용하고 있었음, 이 함수는 찾고자하는 문자($needle)의 마지막 위치를 반환하는 녀석이었음 - http://php.net/manual/kr/function.strrpos.php 그런데 offset의 인자를 메뉴얼에서 읽으니 잘 이해가 되지 않는다, 양수에 대해선 이해가되는데 음수인 경우는? 직접 테스트해봐야겠다. Offset이 없을 경우 $strrpos_text = 'abcdeab..
[PHP] 문자를 hex로 바꾸고 다시 복구하기 $hangul = "가"; // hex로 만듭니다. $hex_hangul = bin2hex($hangul); echo $hex_hangul; // 다시 문자로 만듭니다. $decode_hangul = pack("H*", $hex_hangul); echo "\n$decode_hangul\n"; - http://php.net/manual/kr/function.bin2hex.php 이미 hex화된 영문자를 아스키 코드 값으로 복구하기 $ascii_chr = chr(hexdec($hexString));
[PHP] AES128/ECB 복호화 하기 이전 쓰레드에서 Java와 MySQL에서 AES128/ECB의 암호화/복호화 개발을 진행했습니다. 이번에는 PHP로 복호화하는 방법을 소개합니다. 사전에 php-encrypt 확장 모듈 설치가 필요합니다. 관련 글은 http://seongtak-yoon.tistory.com/49를 참고해주세요. 참고로 암호화된 데이터는 AES128/ECB -> Base64로 암호화되었습니다. 복호화는 당연히 반대로 Base64 -> AES128/ECB의 과정이 되어야합니다. PHP에서 복호화 함수를 제공하고 있습니다. - http://php.net/manual/kr/function.mcrypt-decrypt.php 참고) base64_decode($encode_data)를 통해서 base64를 복호화한 후 이 데이터를 ..
[PHP] php-mcrypt 모듈 설치하기 Java와 MySQL에 이어서.. PHP언어를 통해 AES 암호화를 진행해야하는 일이 있었습니다. PHP언어의 양방향 암호화는 mcrypt_encrypt함수를 통해 진행할 수 있습니다. 그런데.. 이 함수를 사용하려면 php-mcrypt 모듈 확장을 설치해야합니다. 일반적으로.. yum을 통해 설치할 수 있는데요. yum list php-mcrypt yum install php-mcrypt - You need to be root to perform this command. 라는 메세지가 뜨면 sudo yum list php-mcrypt 명령어 혹은 root 계정으로 수행합니다. 참고 : http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_php-mcrypt_%E..