'Programming/PHP'에 해당하는 글 117건

pathinfo

Programming/PHP 2013. 6. 11. 23:42

파일 경로를 분석하여 '전체경로, 파일명, 확장자' 등을 반환합니다.

 

mixed pathinfo( $path, $option )

 

mixed 는 array, string 등 여러가지 타입이 반환될 수 있음을 의미합니다.
$path 는 분석될 경로, $option 은 아래의 요소들이 될 수 있으며 생략시 전체 요소가 배열로 반환됩니다.
PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION, PATHINFO_FILENAME.

 

$path 에 하나 이상의 확장자를 가지고 있다면, 마지막 확장자를 반환합니다. (예: common.inc.php)

 

<?php
$path = '/www/htdocs/inc/lib.inc.php';
$path_parts = pathinfo( $path );
print_r( $path_parts );
?> 

/*
Array
(
    [dirname] => /www/htdocs/inc
    [basename] => lib.inc.php
    [extension] => php
    [filename] => lib.inc     // since PHP 5.2.0
)
*/

 

위의 $path_parts['basename'] 은
pathinfo( $path, PATHINFO_BASENAME ) 과 동일하고
basename( $path )와도 동일한 결과를 출력합니다.

 

만약 basename 이 확장자 없이 lib 로 끝나거나 lib. 으로 끝난다면 확장자가 없다는 결과는 같지만, 두가지의 다른 결과를 나타냅니다.
lib 는 .이 없으므로 아예 확장자가 없는 null 을 의미하고,
lib. 은 .이 확장자를 구분하므로 "" 를 나타냅니다.

 

dirname() 이나 basename() 함수와 비슷하지만 의도에 맞게 사용하면 되겠습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

JpGraph

Programming/PHP 2012. 6. 20. 00:00

http://jpgraph.net/


객체 지향, PHP용 그래프 라이브러리.
다운로드 파일에는 다양한 예제와 api 포함.

 

  • 특정 그래프 라이브러리 include
  • x값, y값 배열로 전달
  • 그래프 객체 생성
  • 그래프 사이즈, 폰트, 범례 지정
  • 그래프 생성 및 데이터 전달
  • 그래프 그리기

 

그래프 삽입할 부분에 img 태그로 작성한 graph php 파일 지정.
동적 데이터 전달은, xml이나 세션등 이용.

 

 

* single_line.php

 

<?
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

 

// Some data
$ydata = array(11,3,8,12,5,1,9,13,5,7);

 

// Create the graph. These two calls are always required
$graph = new Graph(350,250);
$graph->SetScale('textlin');

 

// Create the linear plot
$lineplot = new LinePlot($ydata);
$lineplot->SetColor('blue');

 

// Add the plot to the graph
$graph->Add($lineplot);

 

// Display the graph
$graph->Stroke();
?>

 

 

* example.php

 

<img src="./single_line.php" alt="Single Line" />


 

 

다른 그래프 라이브러리 중에 pchart 도 괜츈해보임...


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,
유용하게 사용할 수 있는 함수
정규식을 이용해 특정 변수의 인코딩이 UTF8 인지 확인 여부 가능

function is_utf8( $str ) {
    return preg_match( '%^(?:
    [\x09\x0A\x0D\x20-\x7E] # ASCII
    | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
    | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
    | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
    | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
    | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
    | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
    | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
    )*$%xs', $str );
}

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

ctype

Programming/PHP 2007. 6. 28. 13:50
보통 입력된 데이터 형식(전화번호, 영/숫자 아이디 등..)을 판단하기 위해 정규 표현식을 사용할 수도 있지만 PHP 함수를 사용하는 것이 언제나 더 바람직하다.
왜냐하면 PHP 함수들은 직접 작성한 코드보다 더 적은 오류를 가질 가능성이 높고 직접 작성한 필터링 로직의 오류는 거의 대부분 보안 취약점으로 이어지기 때문이다.
그래서 PHP는 ctype 함수들을 제공한다.
  • ctype_alnum
    영문/숫자인지 체크하여 TRUE나 FALSE를 반환한다. (abc123)
  • ctype_alpha
    영문자인지 체크하여 TRUE나 FALSE를 반환한다. (abc)
  • ctype_cntrl
    특별한 제어 함수인지 체크하여 TRUE나 FALSE를 반환한다. (\n\r\t)
  • ctype_digit
    숫자인지 체크하여 TRUE나 FALSE를 반환한다. (123)
  • ctype_graph
    인쇄가능한 문자인지 체크하여 TRUE나 FALSE를 반환한다. (빈칸, \n 등 제외)
  • ctype_lower
    영소문자인지 체크하여 TRUE나 FALSE를 반환한다. (abc)
  • ctype_print
    인쇄가능한 문자인지 체크하여 TRUE나 FALSE를 반환한다. (\n 등 제외)
  • ctype_punct
    빈칸을 제외한 특수문자인지 체크하여 TRUE나 FALSE를 반환한다. (@#$%)
  • ctype_space
    공백문자인지 체크하여 TRUE나 FALSE를 반환한다. (\n\r\t)
  • ctype_upper
    영대문자인지 체크하여 TRUE나 FALSE를 반환한다. (ABC)
  • ctype_xdigit
    16진수 문자인지 체크하여 TRUE나 FALSE를 반환한다. (ab12bc99)

<?php
$strings = array( 'AbCd1zyZ9', 'foo!#$bar' );

foreach ( $strings as $testcase ) {
   if ( ctype_alnum( $testcase ) ) {
       echo "The string $testcase consists of all letters or digits.\n";
   } else {
       echo "The string $testcase does not consist of all letters or digits.\n";
   }
}
?>

output:
The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consists of all letters or digits.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

print_r

Programming/PHP 2006. 11. 7. 19:58
print_r
변수에 관한 정보를 사람이 읽기 좋게 출력한다.

Description
bool print_r( mixed expression [, bool return] )

print_r()은 변수에 대한 정보를 사람이 읽을 수 있는 방법으로 표시한다.
string, integer, float이 주어지면, 값을 그대로 출력한다.
array가 주어지면, 키와 요소를 알아볼 수 있는 형태로 표현한다.
object에 대해서도 비슷하게 표현한다.
var_dump()와는 달리, print_r()과 var_export()는 protectedprivate 속성도 보여준다.
print_r()은 배열 포인터를 마지막으로 이동한다.
처음으로 되돌리려면 reset()을 사용하라

<pre>
<?php
  $a = array( 'a' => 'apple', 'b' => 'banana', 'c' => array( 'x', 'y', 'z' ) );
  print_r( $a );
?>
</pre>
// output
<pre>
Array
(
  [a] => apple
  [b] => banana
  [c] => Array
  (
     [0] => x
     [1] => y
     [2] => z
  )
)
</pre>

print_r()의 출력을 가져오려면, return 인자를 사용하라.
이 인자를 TRUE로 설정하면, print_r()은 출력을 표시(기본값)하는 대신, 반환값으로 내보냅니다.

<?php
/* return 인자 예제 */
  $b = array( 'm' => 'monkey', 'foo' => 'bar', 'x' => array( 'x', 'y', 'z' ) );
  $results = print_r( $b, true );  // $results가 print_r의 출력을 가진다.
?>

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,