Flickr 1TB無料廃止の対応として Google フォトに移行することにしました。が、少なくとも移行は半年後です。今後の記事で使う画像から Google フォトの url にします。
roadtoalinuxmintuser

theming

roundup
PHP:get_〜関数一覧(if not all) 22:43
自分用
get_defined_vars
全ての定義済み変数を多次元配列で返す
get_defined_constants(マニュアルには定数の値が載っていないので、これを見なきゃいけない)
全ての定数の名前とその値を連想配列で返す
get_defined_functions
定義済みの全ての関数を配列で返す
get_parent_class
オブジェクトの親クラスの名前を取得
get_meta_tags
ファイル上の全て飲めたタグ情報を連想配列で返す(.は_に自動変換される)
get_class_methods
クラスメソッドの名前を配列で返す
get_class
オブジェクトのクラス名を返す
get_class_vars
現在のスコープからアクセスできるクラスのデフォルトプロパティを連想配列で返す
get_object_vars
指定したオブジェクトのスコープ内でアクセス可能なstatic以外のプロパティを連想配列で返す
get_cfg_var
PHP設定オプションの現在の値を返す
get_required_files
get_included_files()のエイリアス
get_included_files
include または require で読み込まれたファイルの名前を配列として返す
get_current_user
現在のPHPスクリプトの所有者の名前を返す
get_browser(ブラウザやOS判定が楽になる)
ブラウザのメジャーバージョン番号、マイナーバージョン番号や ID 文字列といったさまざまなデータを連想配列で返す
get_resource_type
指定したリソースハンドルのリソース型を表す文字列を返す
get_declared_classes
定義済みのクラスの名前を配列で返す
get_magic_quotes_gpc
magic quotes gpc の現在の設定を返す
get_extension_funcs
指定したモジュールの関数名を配列で返す
get_html_translation_table
htmlspecialchars() および htmlentities() で内部的に使用される変換テーブルを配列で返す
get_magic_quotes_runtime
magic_quotes_runtime の現在アクティブな設定値を返す
get_declared_interfaces
現在のスクリプトで宣言されているインターフェース名を配列で返す
get_loaded_extensions
PHPインタプリタにコンパイル、 ロードされている全てのモジュールの名前を配列で返す
get_include_path
現在の include_path 設定オプションで指定されているパスの文字列を返す
| PHP |
体系的って大事 03:24

PHPでID3タグを編集するためのコマンドラインから動かす
小さなPHPスクリプトを書いてみたのだけれど
id3_set_tag()が機能していない
なぜか分からないまま、時間は過ぎていく
分からない..
分からない...
そして時間は過ぎていく

id3_remove_tag()がfalseを返す
分からない..
分からない...
そして(ry

id3_get_tag()やid3_genre_name()やらだけ機能する
結論:おそらくin developmentってコトで

一応きちゃないソースを

$path=$argv[1];
$info=id3_get_tag($path);
preg_match("/([¥w+])/",$info["genre"],$matches);
$genre=$matches[1];
$genre=id3_get_genre_name((int)$genre);

$version=id3_get_version($path);
echo "このファイルのID3のバージョンは";
$showver=array();
if($version & ID3_V1_0)
$showver[]="1.0";
if($version & ID3_V1_1)
$showver[]="1.1";
if($version & ID3_V2_1)
$showver[]="2.0";
if($version & ID3_V2_2)
$showver[]="2.2";
if($version & ID3_V2_3)
$showver[]="2.3";
if($version & ID3_v2_4)
$showver[]="2.4";
echo join("と",$showver)."です。¥n";
$ary1=array("","ジャンル","タイトル","アルバム","年","トラック","アーティスト","コメント");
$ary2=array("","genre","title","album","year","track","artist","comment");
$array=array(
"genre"=>$info["genre"],
"title"=>$info["title"],
"album"=>$info["album"],
"year"=>$info["year"],
"artist"=>$info["artist"],
"track"=>$info["track"],
"comment"=>$info["comment"]
);
$str=<< 1 {$ary1[1]}:{$genre}
2 {$ary1[2]}:{$info['title']}
3 {$ary1[3]}:{$info['album']}
4 {$ary1[4]}:{$info['year']}
5 {$ary1[5]}:{$info['track']}
6 {$ary1[6]}:{$info['artist']}
7 {$ary1[7]}:{$info['comment']}
EOF;
echo $str."¥n";
do{
echo "変更しますか?[y/n]:";
fscanf(STDIN,"%s¥n",$yorn);
if($yorn=="n"||$yorn=="N"){
echo "終了¥n";
break;
}
echo "何を変更しますか[1〜7]:";
fscanf(STDIN,"%d¥n",$num);

if((int)$num>count($ary1))
continue;

echo "入力:";
fscanf(STDIN,"%s¥n",$input);

if("UTF-8"!=mb_detect_encoding($input,detect_order,TRUE))
$input=mb_convert_encoding($input,"UTF-8","auto");
if($num=="1"){
$genre=$genres[$input];
$array[$ary2[(int)$num]]=(int)$input;
}else{
$array[$ary2[(int)$num]]=$input;
}
//print_r($array);
$result=id3_set_tag($path,$array,ID3_V1_1);
if($result==true)
echo "Done¥n";
else
echo "Oops!Missed¥n";
echo $str."¥n";
}while(TRUE);
| PHP |
PHP:再起的ファイル処理 おまけでディレクトリ下のすべてのmp3をまとめるコード 19:06
//コマンドラインで渡されたディレクトリ下にあるファイルをすべて表示
function recursive_list_files($from="."){
	if(!is_dir($from))
		return false;
	$files=array();
	if($dh=opendir($from)){
		while(false!==($file=readdir($dh))){
			if($file=="."||$file=="..")
				continue;
			$path=$from."/".$file;
			if(is_dir($path))
				$files+=recursive_list_files($path);
			else
				$files[]=$path;
		}
		closedir($dh);
	}
	return $files;
}
$str=<<<EOF
	これは、ひとつオプションをとるコマンドラインのPHPスクリプトです。

		使用法:$argv[0] <option>

		<option>はファイルを探す起点にしたいディレクトリです。
EOF;
$count=0;
if(in_array($argv[1],array('--help','-help','-h','-?',''))){
	echo "¥n".$str."¥n¥n";
}else{
	foreach(recursive_list_files($argv[1]) as $item){
		echo $item."¥n";
		$count++;
	}
}
echo "¥nファイル数:".$count."¥n";
| PHP |
PHP:テキスト処理>PCRE 14:16
自分が関数を実際に触り、まとめて見るためのメモ

テキスト処理>PCRE
  • preg_filter ― Perform a regular expression search and replace
  • preg_grep ― パターンにマッチする配列の要素を返す
  • preg_last_error ― 直近の PCRE 正規表現処理のエラーコードを返す
  • preg_match_all ― 繰り返し正規表現検索を行う
  • preg_match ― 正規表現によるマッチングを行う
  • preg_quote ― 正規表現文字をクオートする
  • preg_replace_callback ― 正規表現検索を行い、コールバック関数を使用して置換を行う
  • preg_replace ― 正規表現検索および置換を行う
  • preg_split ― 正規表現で文字列を分割する

int preg_match(string $pattern,string $subject[,array &$matches[,int $flags[,int $offset]]])
$patternで指定した正規表現を使って$subjectを検索し、見つかった個数を返す。但し0か1。


//カレントディレクトリの01 - aaa.mp3とかをすべて01aaa.mp3とかにする
foreach(glob("*.mp3") as $item){
if(preg_match("/^([0-9][0-9]) ¥- (.*¥.mp3)$/",$item,$matches))
rename($item,$matches[1]."-".$matches[2]);
}

int preg_match_all(string $pattern,string $subjcet,array &$matches[,int $flag[,int $offset]])
$subjectを検索し、$patternにマッチしたすべての文字列を$matchesに多次元配列を返す(0の場合もある)

$html="bold textclick me";
preg_match_all("/(<([¥w+])[^>]*>)(.*)(<¥/¥¥2>)/",$html,$matches,PREG_SET_ORDER);
foreach($matches as $item){
echo "matched:".$item[0]."¥n";//matched: bold text/matched: (ry
echo "part1:".$item[1]."¥n";//part1:/part1:
echo "part2:".$item[3]."¥n";//part2:bold text/part2:click me
echo "part3:".$item[4]."¥n";//part3:
/par3:
}


mixed preg_replace(mixed $pattern,mixed $replacement,mixed $subject[,int $limit[,int &$count]])
$patternを用いて$subject内を検索し、$replacementに置換する

返り値 - $subjectが配列の場合は配列を、その他の場合は文字列

$str="The quick brown fox jumped over the lazy dog";
$pattenrs=array('/quick/','/brown/','/fox/');
$replacements=array('slow','black','bear');
echo preg_replace($patterns,$replacements,$str);


array preg_split(string $pattern,string $subject[,int $limit=-1[,$int $flags=0]])
$patternにマッチした境界で分割した$subjectの部分もじれ鵜の配列を返す

//空白文字で区切る
$str="hypertext preproceccer";
$keywords=preg_split("/[¥s]+/",$str);
//1文字ずつ抜き出す
$str="abcdefg";
$chars=preg_split("//",$str,-1,PREG_SPLIT_NO_EMPTY);
print_r($char);



eregシリーズもあるがpregシリーズの方が速い

テキスト処理>POSIX Regex
int ereg(string $pattern,string $string[,array &$regs)
$patternで指定した正規表現により、大文字小文字を区別して$stringを検索する
$pattern-大文字小文字を区別する正規表現
$string-入力文字列
$regs-$regs[0]は$patternにマッチした文字列全体。$regs[1]は$patternの最初の左括弧が始まる部分文字列を保持、$regs[2]は2番目の左括弧(ry

返り値-$stringの中で$patternがマッチした場合はマッチした文字列の長さを返し、マッチしなかった場合とエラーの場合はFALSEを返す。$regsが渡されていなかったりマッチした文字列の長さが0の場合は1を返す。

//emailの妥当性確認
function validateMail($mail){
if($mail!==""){
if(ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_¥.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_¥.]*[.]{1}[A-Za-z]{2,5}$",$mail)
return true;
else
return false;
}else
return false;
}

int eregi(string $pattern,string $string[,&$regs])
大文字小文字を区別しないereg()
$pattern-大文字小文字を区別しない正規表現
$string-入力文字列
$regs-$regs[0]は$patternのマッチした文字列全体。$regs[1]は$patternの最初の左括弧が始まる部分文字列を保持、$regs[2]は2番目の左括弧(ry


//ビジターがbotかどうかを調べる
function is_bot(){
$bots=split(",","google,yahoo,msn");
//上の配列から(google)|(yahoo)|(msn)を作る
$regex="(".join(")|(",$bots).")";
//上で作った正規表現を使って調べる
return eregi($regex,$_SERVER["HTTP_USER_AGENT"]);
}

| PHP |
価格.com APIを使ってみた 22:02
ブログパーツを埋め込む手法で...

所々抜けてますが、自分の所為じゃないと思います
向こうが返してくれないんです

人気順とやらでソートしてるけど
本家の売れ筋/注目/満足度ランキングのいずれでもない

注目度に近いけど...



参考にしたものメモ
PHP での SimpleXML 処理
PHPのエスケープやエンコード関数 - プログラマはサイコロを振らない
PHP: preg_replace - Manual
| PHP |
Javascriptからphpを実行 22:01
PHP:JS(JavaScript)からPHPを呼び出しHTML上に出力する方法
こんなこともできるのかと読んでましたが

ならないんですね〜

sukima045394

と思って、単純に「Shellingford」だけをechoする
phpを指定すると...



なりおった!
つまり、サーバーや設定に問題はない

となるとスクリプトか
いったいどこで...

a few hours ago
できた



リアルタイムでちゃんと更新してます
なるほど、ブログパーツはこうやってるくるのか
| PHP |
Mac(10.5.6) de PHP 19:13
Mac OS X(10.5.4)のローカル環境で PHP を動かす方法 | 東京ヘッドターミナル
が参考になりました

ピクチャ 1

見えました

そうだ
これで、2chビューアー「p2」も
使えるようになったんだ

でも、これってWeb共有にチェックつけるんだから
公開されてるってことだよね
セキュリティ的には大丈夫なのかな
とりあえず情報は漏らさぬようにしようと
| PHP |
| 1/1 |

Show some apps list:


miku

Follow on your feed reader:


About this blog:

Linux Mint-centric chronicle.
Since 2009.
Info 再開しました。更新日は月一です。

roadtoapython

roadtorubyist

git