PGメモ

非エンジニアの記録

php

phpで別ポートへの通信ができない

php

solrを使いだしてphpからsolrに通信する機会があるのですが cURL使ってもfile_get_contentsを使ってもどうも結果が返ってこない。どうしたものかと思ってデバッグをしてみると cURLのエラーメッセージでaccess deniedと出た。 アクセスできない・・・SELinux…

よく見るレート表示を短く書く

php

よく評価サイトとかで ★★★☆☆ みたいなの見るけど、これ中のコードで if($point $return = "☆☆☆☆☆"; }elseif($point $return = "★☆☆☆☆";こう書いてたりしたらなんか辛いので短く書けないか考えた。 $point = floor($point); $empty_rate = array_fill(0, 5, '…

PHP高速化 置換の種類

PHPで置換する際に使う関数を「preg_replace」より「strtr」の方が早いそうだ。 やってみたBIG DATAの中身は67860文字あります。 $c = 100; for($i=0;$i $r = bm('loop_1',$c); $rary += $r; $ravg = $rary/$i; }echo $ravg;function bm($fn, $c) { $time_st…

PHP高速化 インクリメントの種類

ループする時のインクリメントは「$i++」より「++$i」の方が早いらしい。 やってみた。 $c = 20000; for($i=0;$i $r = bm('loop_1',$c); $rary += $r; $ravg = $rary/$i; } echo $ravg;function bm($fn, $c) { $time_start = microtime(true); $fn($c); $tim…

PHP高速化 ループの種類

ループがめちゃめちゃ増えて遅い。回数は減らせないけど早くしたい、forよりwhileらしい。やってみた。 $c = 20000; for($i=0;$i $r = bm('loop_1',$c); $rary += $r; $ravg = $rary/$i; } echo $ravg;function bm($fn, $c) { $time_start = microtime(true)…

PHP高速化 ループ回数を減らす

ループがめちゃめちゃ増えて遅い。 なんて事があるので減らしたい、けど本当に早くなるのか。やってみた。20万回のループを100回まわして平均をとります。 $lcount = 200000;for($i=0;$i $r = bm('loop_1',$lcount); $rt += $r; $ravg_1 = $rt/$i; }for($i=0…

phpで実行時間を計測する

実行時間を計る方法。 $time_start = microtime(true);$time_end = microtime(true); $time = $time_end - $time_start; // 読みにくいので10桁に echo sprintf("%.10f",$time);

cakephp2.3 validateがまったく効かない

最近またcakephpを触り始めて、まったくvalidateが効かないという所でハマったわけです。条件にnotEmpty,requiredなどどんな条件を設定してもスルー。 けれどもsaveは動いている。どういうことだと...結局モデルのファイル名が間違ってました。 誤:UserMode…

PDOではINが使えない。なぜか

symfonyで直接SQLを書く事は珍しい事ではない 今日もSQLを直接書くよ! $sql="select * from hoge where id in(?,?,?)"; $sth = $con->prepare($sql); $sth->execute(1,2,3);しかし、こう書いても返ってくるのはidが1のレコードのみ。 なぜか。 bindされた後…

::execute() must be compatible with that of sfComponent::execute() in の対処法

symfony1.1以上でactionsが長くなってきたので分けたいと思ったので分けてみた。すると hogeAction::execute() must be compatible with that of sfComponent::execute() inというのが出た。 hogeAction extends sfActions { public function execute() { } …

APCを使ってみる

memcacheにも負けないと噂のAPCを使ってみる値を入れる60秒で消える apc_add($key, $value, 60); これで取り出す apc_fetch($key); 終わり。

PHPで可変関数を使う

php

public function foo($str) { echo $str; } $fnc = 'foo'; $fnc('var');varと出力されます

PHPでRFC3986エンコードする

php

str_replace('%7E','~',rawurlencode('http://foo.com'));

phpで時間の差を求める

php

gmdate("H:i:s", strtotime(時間1) - strtotime(時間2))

criteriaで別名(as)を使う

$items = array(); $c = new Criteria(); $c->addSelectColumn("hoge.ID as HOGE_ID"); $c->addSelectColumn("hoge.NAME as HOGE_NAME"); $rs = HogePeer::doSelectStmt($c); while($r = $rs->fetch(PDO::FETCH_ASSOC)){ $items[] = $row; }といった感じ。 a…

PHPでランダム文字列を作る

php

function getRandomString($length = 8){ $list = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"; mt_srand(); $r = ""; for ($i=0; $i<$length; $i++) { $r .= $list{mt_rand(0, strlen($list) - 1)}; } return $r; }

PAAMAYIM_NEKUDOTAYIMエラーの原因

php

PAAMAYIM_NEKUDOTAYIMってなぁに?

php

PAAMAYIM_NEKUDOTAYIM という文字がエラーの時に出てきた。なんて読むんだ。ぱあみゃいむねくどたいぇいむ?そしてどういう意味なんだ。 実はこれヘブライ語でダブルコロン「::」をこのように表記するそうだ なぜダブルコロンに Paamayim Nekudotayim という…

phpで定数を動的に変える

php

phpには便利な関数がたくさんあって、その中にconstantという関数がある この関数を使うと定数を動的に使うことができるのだ

php5 configure option に --with-libxml がない件

--enable-libxmlにするとよい --enable-dom も同じく

php5にmbstringを後から入れる

phpのソースをダウンロード(あればいらない) 今すでに入っているものとバージョンを合わせてください # wget http://www.php.net/get/php-5.3.1.tar.gz/from/a/mirror 解凍する # tar zxvf http://www.php.net/get/php-5.3.1.tar.gz extまで移動 # cd php-…

simplexmlでパースしたXMLから文字列を出力させたかったけどできなかったので違う方法を使った

php

$hoge = simpexml_load_file($url); $title = $hoge->title; nl2br(html_entity_decode($title->asXML()));

Warning: Division by zero in

php

0で割り算してはいけません。

libphp4.soが作成されない。とりあえずは解決。

php4とphp5を同居さすべく、apacheを2つ入れてphp4をえいっと入れようとしました。しかし、何度やってもlibphp4.soが作成されない。何度やっても。 make -> make install が完了したのに作成されない。不思議! 余計なことをやりすぎたのかと思い make distc…