PHP Note
category: PHP言語仕様 正規表現は怖くない ディレクトリーツリー

文字列操作

created: 2002-11-02 | modified: 2008-03-24

文字の長さを調べたり、特定の文字を置き換えたり、良くやる文字列処理の覚書き。


改行コードを得る

改行コードの自動変換機能を持ったFTPクライアントと併用すれば、OS の改行コードが必要な時に OS の違いを気にせずに済みます。

function cr ()
{
    return "
";      // ↑ココの改行コードを返す
}


文字列中の改行コードを <br /> に置き換え

$str = str_replace(array("\r\n","\r","\n"), '<br />', $str);

str_replace: 特定の文字を別の文字に置き換える



文字列中の <br /> を改行コードに置き換え

$str = str_replace(array('<br />','<br>'), "\n", $str);


文字列中の改行コードを削除

$str = str_replace(array("\r\n","\r","\n"), '', $str);

特定の文字を削除することは、特定の文字を ''(空の文字列)に置き換えることと同じ



文字列中の改行コードをOSの改行コードに統一

$str = str_replace(array("\r\n","\r","\n"), PHP_EOL, $str);

PHP_EOL は OSの改行コードを示す定数。ユーザから得たテキストの改行コード統一に。



最後の文字を削除

$str = '/php/';
$str = substr($str, 0, -1);
// $str: '/php' 

substr:開始位置とバイト数を指定して文字列の一部を得る。
第2引数が開始位置、第3引数はバイト数。マイナスの場合は後ろからのバイト数なので、文字列のはじめから最後の一文字の手前までが得られる。



文字列の始めと終わりの空白文字を削除

$str = ' /php/ ';
$str = trim($str);
// $str: '/php/' 

trim:
空白文字は \n \r \t \0 \x0B の4つ。第2引数にて削除する文字を複数指定可能。空白以外の文字も指定できる。ユーザから得たテキストの余分な空白削除に。



文字列の終わりの '/' を削除

$str = '/php//';
$str = rtrim($str, '/');
// $str: '/php' 

rtrim:
trim と違って始めの文字は削除対象外。第2引数が無ければ trim 同様空白文字を削除するが、第2引数が指定されてるので '/' を削除した文字を返す。ディレクトリの書式統一に。



HTMLエンティティを元に戻す(htmlspecialcharsの逆)

function unhtmlspecialchars ( $str )
{
    $entry = array_flip(get_html_translation_table(HTML_SPECIALCHARS));
    return strtr($str, $entry);
}

PHP5 には htmlspecialchars_decode が実装されました。



任意のカラム数($len)で文字列を丸める

$str = mb_strimwidth($str, 0, $len);


magic_quotes_gpcのエスケープ文字を削除する(PHP5)

// コールバック用関数
function _callback_stripSlashes ( &$val, $key )
{
    $val = stripslashes($val);
}

// 実行関数
function stripQuotesGpc ()
{
    if (get_magic_quotes_gpc()) {
        if (count($_GET)) {
            array_walk_recursive($_GET ,'_callback_stripSlashes');
        }
        if (count($_POST)) {
            array_walk_recursive($_POST ,'_callback_stripSlashes');
        }
        if (count($_COOKIE)) {
            array_walk_recursive($_COOKIE ,'_callback_stripSlashes');
        }
    }
}

array_walk_recursive はPHP5から実装された為、PHP4環境ではマニュアルのサンプルコードを手本に自前で array_walk_recursive を実装すれば使えます。



ルートからの絶対パスか判定する

function is_rootpath ( $path )
{
    if ('/' == $path{0} || ':' == $path{1}) {
        return true;
    }
    return false;
}


category: PHP言語仕様 正規表現は怖くない ディレクトリーツリー
PHP Note
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新したNote
よく読まれている記事
Yahoo Search

最近更新された掲示板トピックス
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑