사용자 도구

사이트 도구


language:php:php-codes

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.


이전 판
language:php:php-codes [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +~~Title:PHP 복붙용 코드 모음~~
 +
 +{{page>language:php:php_문서_목차&noheader&nofooter&noeditbtn&firstseconly}}
 +
 +====== 코드 정리 ======
 +
 +===== index.html to index.php 리다이렉트 =====
 +
 +html 파일이 php로 이동하는 코드를 넣어두자.
 +
 +<code html>
 +<head>
 +<script>location.href = "index.php";</script>
 +</head>
 +</code>
 +
 +===== 리턴값을 레퍼런스로 리턴 =====
 +
 +<code php>
 +public function &argsArray()
 +{
 +  static $flags = Array();
 +  return $this->flags;
 +}
 +</code>
 +
 +
 +===== 프로그램 시작시 설정하는 폴더 위치 값 =====
 +
 +<code php>
 +<?php
 +
 +// 테스트 웹 서버가 iis7 이고
 +// http://127.0.0.1/ppp/z/ 가 웹 주소이고
 +// c:\inetpub\wwwroot\ppp\z 가 설치 위치인 경우 (c:\inetpub\wwwroot : 웹서버 문서 루트 폴더)
 +
 +if( !defined('MYDOC_ROOT') ) { define( 'MYDOC_ROOT', dirname(__FILE__) ); } 
 +if( !defined('MYSITE_DIR') ) { define( 'MYSITE_DIR', dirname($_SERVER['PHP_SELF']) ); }
 +if( !defined('MYWWW_ROOT') ) { define( 'MYWWW_ROOT', 'http://'.$_SERVER['SERVER_NAME'].MYSITE_DIR ); }
 +
 +echo MYDOC_ROOT . '</br>'; // c:\inetpub\wwwroot\ppp\z
 +echo MYSITE_DIR . '</br>'; // /ppp/z
 +echo MYWWW_ROOT . '</br>'; // http://127.0.0.1/ppp/z
 +?>
 +</code>
 +
 +===== 커맨드 라인 =====
 +
 +<code php>
 +// 커맨드 라인으로 넘어온 파라미터의 개수 $argc
 +var_dump($argc);
 +// 커맨드 라인으로 넘어온 파라미터들 $argv
 +var_dump($argv);
 +</code>
 +
 +===== 커맨드 라인 : 파라미터 해석 =====
 +
 +===== 가변 파라미터 함수 =====
 +
 +  * [[http://jp2.php.net/manual/en/function.func-get-args.php]]
 +
 +기본
 +
 +<code php>
 +<?php
 +function foo()
 +{
 +    $numargs = func_num_args();
 +    echo "Number of arguments: $numargs<br />\n";
 +    if ($numargs >= 2) {
 +        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
 +    }
 +    $arg_list = func_get_args();
 +    for ($i = 0; $i < $numargs; $i++) {
 +        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
 +    }
 +}
 +
 +foo(1, 2, 3);
 +?>
 +</code>
 +
 +활용
 +
 +<code php>
 +//test.php
 +<?php
 +function foo() {
 +    include './fga.inc';
 +}
 +
 +foo('First arg', 'Second arg');
 +?>
 +
 +//fga.inc
 +<?php
 +$args = func_get_args();
 +var_export($args);
 +?>
 +</code>
 +
 +===== 압축과 인코딩 =====
 +
 +<code php>
 +$sampleXmlString2 = 'help me';
 +//$gzEncodeData = gzcompress($sampleXmlString, 9);
 +$gzEncodeData = gzencode($sampleXmlString, 9);
 +echo '\n' . bin2hex($gzEncodeData) . '\n';
 +//$gzDecodeData = gzuncompress($sampleXmlString, 9);
 +$gzDecodeData = gzdecode( $gzEncodeData );
 +
 +echo '\n' . $gzDecodeData . '\n';
 +</code>
 +
 +===== xml 자료 처리 =====
 +
 +<code php>
 +// 샘플 xml
 +$sampleXmlString = <<<XML
 +<?xml version="1.0" encoding="UTF-8"?>
 +<aracomm pktversion="1">
 + <header>
 + <packet index="1" subindex="333"/>
 + <desc>login</desc>
 + </header>
 +<data direction="send">
 + <var name="id" value="testMyIdIsXXXX" />
 + <var name="pw" value="passwordpassword" />
 +</data>
 +</aracomm>
 +XML;
 +</code>
 +
 +<code php>
 +// 메모리에서 바로 읽어들이기
 +$xmlObj = simplexml_load_string($sampleXmlString);
 +// Basic SimpleXML usage (여기)
 +
 +// 여러가지 데이터 읽어보기
 +$xmlObj = simplexml_load_string($sampleXmlString);
 +print_r( $xmlObj ); // xml 전부 덤프
 +
 +//$arrXml = objectsIntoArray($xmlObj);
 +print_r( $xmlObj['pktversion'] );
 +print_r( $xmlObj->header->packet['index'] );
 +
 +echo 'packet index ' . $xmlObj->header->packet['index'];
 +
 +print_r( $xmlObj->data->var['value'] );
 +print_r( $xmlObj->data->var['value'] );
 +</code>
 +
 +
 +====== 편의 함수 정리 ======
 +
 +  * bin2hex : 바이너리를 hex 코드로
 +  * var_dump(%%<변수>%%) : 변수의 값을 그대로 덤프!