WEB언어/PHP
php 문자열 자르기 substr() 함수 explode()
saltdoll
2014. 10. 26. 02:49
반응형
프로그램에서 문자열 처리는 대단히 많이 사용되는 부분이다.
문자열의 끝 문자만 자르는 경우의 사용이 매우 많이 사용된다.
가장 마지막 글자만 없애기
$peoples = "1,2,3,"
$peoples = substr($peoples, 0, -1);
//결과 - 마지막 ,(컴마) 삭제
1,2,3
<?php
$rest = substr("abcdef", -1); // returns "f"
$rest = substr("abcdef", -2); // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>
이 경우, 500 (Internal Server Error)가 발생할 수 있습니다.
(해결 방법) 아래의 방법으로 하면 해결 됩니다.
$peoples = "1,2,3,"
$peoples = substr($peoples, 0, strlen($peoples)-1);
참고: 어떤 곳은 mb_substr($sting, $start, $length, $encoding)를 하면 된다고 하는데, 저의 경우 500에러가 또 발생.
두 함수의 차이는 substr()는 single byte로 자르고, mb_substr은 multi byte로 자른다고 합니다.
string substr ( string $string , int $start [, int $length ] )
- 주어진 문자열에서 시작부분에서 지정된 길이만큼 문자열 반환 (PHP4, PHP5)
- 입력 문자열은 1글자 이상이여 한다
- start는 0부터 시작하며, 음수(-)일경우 문자열 끝에서 -1부터 시작해서 문자열 끝까지 반환
- length가 음수일경우 문자열 끝을 -1위치로 하여 시작된 위치부터 length 위치까지를 반환
explode
문자형을 분리하는 함수 (Split a String by String)
array explode ( string $delimiter
, string $string
[, int $limit
] )
예제
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
반응형