phpでの空白削除
novacoffee
novacoffee
ATOMRSS
  • コード求むID: 501
  • 登録日時:  2009/07/01 11:01
  • 最終更新日時: 2009/07/14 13:51
  • アクセス数: 1339
  • タグ:  php
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加

PHPでの空白削除(文字列中)をクラスとして作成したいと思います。
語頭と語尾の削除はtrim関数で出来ることはわかっているのですが、
文字列の中のスペースも削除したいと思います。

code
class delete_space
{
public $all=" ";
public $half=" ";
public $no="";

function delete()
{
$string=str_replace($all,$no,$string);
$string=str_replace($half,$no,$string);
}

}

このクラスの作成方法及び使用方法がわかる方いらっしゃいましたら
ご教授お願いします。

コメント

  • ゲスト
  • 1:ゲスト (BLUEPIXY)
  • 2009/07/02 01:34

このクラスでは、インスタンスは、必要なくて機能(関数)の提供だけが要求されるから、
static メソッドで作成すればいいかと思う。
例:

class Delete_space
{
    protected static $spc = array(" "," ","\t");//全角スペース,半角スペース,タブ
    public static function delete($string){
    	return str_replace(self::$spc, "", $string);
    }
}
使用法:

$str1 "   test string:\tspace     ";
$result Delete_space::delete($str1);
print "「${result}」\n";

GJ

GJ

  • ゲスト
  • 2:ゲスト
  • 2009/07/14 13:51


novacoffeeさんは勉強不足過ぎなので、
少しは自分で調べましょうと思ったのですが、
BLUEPIXYさんのクラスに感動したので、
関数を追加してみました。

概要は、
「$spc」で指定した削除したい文字が連続していた場合に、
「$replacement」で指定した文字ひとつに成型する。
といった具合です。

例:

class Delete_space
{
	protected static $spc = array(" "," ","\t");//全角スペース,半角スペース,タブ
	protected static $replacement = " "; //置き換える文字列
	public static function delete($string)
	{
		return str_replace(self::$spc, "", $string);
	}
	public static function cast($string)
	{
		$patterns = array();
		$replacements = array();
		foreach (self::$spc as $s) {
			$patterns[] = '|['.preg_quote($s).']{2,}|';
			$replacements[] = self::$replacement;
		}
		return preg_replace($patterns, $replacements, $string);
		//str_replace(self::$spc, "", $string);
	}
}
使用法:
$str2 = "   test   string:\tspace This is a pen.    ";
$result = Delete_space::cast($str2);
echo "「${result}」\n";

GJGJGJGJGJGJGJGJ

前へ 1 次へ

プレゼン公開・共有サイト handsOut.jp チーム・マイナス6% - みんなで止めよう温暖化

ブックマークコメント