ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


サイドバー

何かありましたら、メールで連絡いただくか、ブログのどこかにコメント入れてくださいね ^_^

Menu

ゼロと無限の間に

はじめに

作った主なサイト

作った主な便利ツール(無料)

ログ (Blog)

php-tool-box:te

痒い所に手が届く、PHPの文字列系関数を中心としたスニペット集的ライブラリ - Te.php

プロジェクトを始めるといつも必要になって調べて作る、でも覚えるほどでもない、コピペで使ったりライブラリとして呼び出したりできたら便利だなというスニペットを集めてみました。

ライセンス

MITライセンス

ソースコード

<?php
/**
 *	Te.php - 痒い所に手が届く、文字列系関数を中心としたスニペット集 -
 *
 *	事前に mbstring.internal_encoding または mb_internal_encoding() で
 *	mbstring内部文字コードを指定すること
 *
 *	@version   0.1.0
 *	@see       http://0-oo.net/sbox/php-tool-box/te
 *	@copyright 2012 dgbadmin@gmail.com
 *	@license   http://0-oo.net/pryn/MIT_license.txt (The MIT license)
 */
class Te {
	/**
	 *	HTMLエスケープ
	 *	@param	string	$str
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.htmlspecialchars.php
	 */
	public static function h($str) {
		return htmlSpecialChars($str, ENT_QUOTES, mb_internal_encoding());
	}
	/**
	 *	文字列を半角にする
	 *	@param	string	$str
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.mb-convert-kana.php
	 */
	public static function han($str) {
		return mb_convert_kana($str, 'askh');
	}
	/**
	 *	文字列を全角にする
	 *	@param	string	$str
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.mb-convert-kana.php
	 */
	public static function zen($str) {
		return mb_convert_kana($str, 'ASKV');
	}
	/**
	 *	英数字とスペースは半角に、カタカナは全角にする
	 *	@param	string	$str
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.mb-convert-kana.php
	 */
	public static function hanzen($str) {
		return mb_convert_kana($str, 'asKV');
	}
	/**
	 *	文字コードをUTF-8にする
	 *	@param	string	$str
	 *	@param	string	$fromEncoding	(Optional) 変換前の文字コード
	 *	@return	string
	 */
	public static function utf8($str, $fromEncoding = 'SJIS-WIN') {
		return mb_convert_encoding($str, 'UTF-8', $fromEncoding);
	}
	/**
	 *	文字コードをShift_JIS(Windows-31J,CP932)にする
	 *	@param	string	$str
	 *	@return	string
	 */
	public static function sjis($str) {
		return mb_convert_encoding($str, 'SJIS-WIN');
	}
	/**
	 *	文字コードをJIS(CP932対応版)にする
	 *	@param	string	$str
	 *	@return	string
	 */
	public static function jis($str) {
		return mb_convert_encoding($str, 'ISO-2022-JP-MS');
	}
	/**
	 *	ゼロ埋め
	 *	@param	mixed	$val	数値等(半角)
	 *	@param	integer	$len	ゼロ埋め後の文字数
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.str-pad.php
	 */
	public static function zero($val, $len) {
		return str_pad($val, $len, '0', STR_PAD_LEFT);
	}
	/**
	 *	長い文字列の指定した長さ以降を省略
	 *	@param	string	$str	文字列
	 *	@param	integer	$len	表示する長さ(半角は1文字につき1、全角は2でカウント)
	 *	@param	string	$marker	(Optional) 省略した場合に後ろに付ける文字列
	 *	@return	string
	 *	@see http://php.net/manual/ja/function.mb-strimwidth.php
	 */
	public static function cut($str, $len, $marker = '...') {
		return mb_sTrimWidth($str, 0, $len, $marker);
	}
	/**
	 *	ファイルパスを指定してログをファイルに出力
	 *	@param	string	$str	文字列
	 *	@param	string	$path	ファイルパス
	 *	@return	boolean	ログ出力に成功したかどうか
	 *	@see http://php.net/manual/ja/function.error-log.php
	 */
	public static function log($str, $path) {
		return error_log('[' . date('Y-m-d H:i:s') . "] $str\n", 3, $path);
	}
	/**
	 *	メール送信
	 *	@param	string	$from
	 *	@param	mixed	$to      1つの場合はstring、複数の場合はarrayで渡す
	 *	@param	string	$subject
	 *	@param	string	$body
	 *	@param	array	$headers (Optional) 例:array('CC' => 'foo@example.com')
	 *	@return	boolean	メール送信実行結果
	 */
	public static function mail($from, $to, $subject, $body, $headers = array()) {
		mb_language('ja');
		$to = implode(', ', (array)$to);	// 複数可
		$arr = array("From: $from");
 
		foreach ($headers as $key => $val) {
			$arr[] = ucfirst(strToLower($key)) . ": $val";
		}
 
		return mb_send_mail($to, $subject, $body, implode("\n", $arr));
	}
	/**
	 *	アップロードされたファイルの処理
	 *	@param	string	$name	formでアップロードファイルに付けたフィールド名
	 *	@param	string	$path	(Optional) ファイルを保存する場合は、そのファイルパス
	 *	@return	string	ファイルの中身
	 *	@throw	RuntimeException	アップロード失敗
	 *	@see http://php.net/manual/ja/features.file-upload.errors.php
	 */
	public static function uploaded($name, $path = false) {
		$file = $_FILES[$name];
 
		if ($file['error'] !== UPLOAD_ERR_OK) {
			throw new RuntimeException('Upload error = ' . $file['error']);
		}
 
		if (!is_uploaded_file($file['tmp_name'])) {
			throw new RuntimeException('Upload error (is_uploaded_file() => false)');
		}
 
		if ($path) {
			if (!move_uploaded_file($file['tmp_name'], $path)) {
				throw new RuntimeException('Upload error (move_uploaded_file() => false)');
			}
		} else {
  			$path = $file['tmp_name'];
		}
 
		return file_get_contents($path);
	}
}
php-tool-box/te.txt · 最終更新: 2012/12/23 21:55 by dgbadmin