Php

PHPの統計関数

PHP: 統計 関数 – Manual ドキュメントは整備されてない。ソースコード読めってこと? インストール Homebrewだと $ brew install php53-stats でインストールできた。バージョンはお好みで。 関数 stats_dens_pmf_binomial PHP: stats_dens_pmf_binomial – Manual 二項分布。pmfは probability mass function、確率質量関数の略っぽい。 float stats_dens_pmf_binomial ( float $x , float $n , float $pi ) $xは成功数、$nは試行回数、$piは成功確率。 Rにおけるdbinom()と同じ。 stats_cdf_binomial PHP: stats_cdf_binomial – Manual 二項分布のパラメータのいずれかを、その他のパラメータの値から計算する。 とあるが二項分布の累積分布関数(cumulative distribution function)。 float stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which ) ソースコードはこちら。

WordPressプラグインのmathjax-latexを更新したら、シンタックスエラーがでるようになってしまった

wp-content/plugins/mathjax-latex/mathjax-latex.phpの232行目のpreg_replace_callback()の引数で、無名関数を使うようになって、PHP5.2だとシンタックスエラーがでるようになってしまったようだ。 なので、PHP5.2でも動くようにするには、 public static function filter_br_tags_on_math( $content ) { return preg_replace_callback( '/(<math.*>.*</math>)/isU', 'filter_br_tags_on_math_cb', $content ); } function filter_br_tags_on_math_cb( $matches ) { return str_replace( array( '<br/>', '<br />', '<br>' ) , '' , $matches[0] ); } のように変更してやれば良い。 まぁ、PHP5.3にしたほうがいいと思うので、PHP設定 / ユーザー専用ページ / マニュアル – レンタルサーバーならロリポップ!から変更した。

VimでPHPのコーディング規約チェック&整形

PHP Coding Standards Fixer PHP Coding Standards Fixer PSR-1 and PSR-2にそって整形。流行ってそう。pharを入れなくてはいけないのがネック。 PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer – Shin x blog PSRの規約でコーディングをするために必要な調査 : 実験ぶろぐ(仮)試供品 ウノウラボ by Zynga Japan: 意外と身近なphar – PHp ARchive utBREW – PHARが無効な環境でSilexを使う – pharが使えない環境でもファイルに展開、解凍して使えるかも PHP_CodeSniffer PHP_CodeSniffer チェックしてくれるけど、整形はしてくれない。Syntasticと連携するとよさそう。 Syntastic scrooloose/syntastic 以下が参考になりそう。 syntastic/syntax_checkers/php.vim at master · scrooloose/syntastic · GitHub – phpmdとの連携もできる Vim初心者によるVim導入記録(CodeSnifferインストール+シンタックスチェック syntastic設定編) | Code Life Syntax Checking for Drupal in VIM | TechnoSophos Use the default coding standard which phpcs is configured to use by AD7six · Pull Request #149 · scrooloose/syntastic 他のプラグイン phpcs.

XAMPP

WindowsではXAMPPを使うとApacheやMySQL、PHPをひっくるめてインストールできる(FreeBSDでLAMP環境を作るならここ)。 インストール XAMPP XAMPPの使い方を参考にインストールしてみた。ちょっと情報は古かった。 XAMPP 1.7.4をインストールして起動すると XAMPP Component Status Check failure3. Current directory: c:\xampp Run this program only from your XAMPP root directory. というメッセージが出てきた。ちゃんと動くけど、気になる人はInstallerではなく、ZIPファイルを使うと出ない (Apache Friends Support Forum • View topic – XAMPP 1.7.3 vs. 1.7.4)。 ポート番号の設定 80と443のポートが使われているとApacheが起動しない。IIS(Internet Information Service)やSlypeなどで使っている場合がある。 ここに従って設定を変えると起動できた。 ちょっとまとめる。 ポート番号の調べ方 netstatでネットワークの状態を調査によると、アプリケーションが使っているポート番号を調べるには、コマンドプロンプトを起動して [text]netstat -oan[/text] を打つ。例えばポート番号80を使っているアプリケーションを調べるには、出力された結果のLocal Addressにある「:80」のPIDを調べる。PIDが1856だった場合は、 [text]tasklist /fi “pid eq 1856”[/text] と打つと、そのアプリケーションが何かわかる。 Apacheの設定の変更 アプリケーションの設定を変えてもいいが、Apacheのポートの設定を変えて、解決する方法もある。 例えば、C:\xampp\apache\conf\httpd.confの「Listen 80」を「Listen 8080」、「ServerName localhost:80」を「ServerName localhost:8080」に変更、C:\xampp\apache\conf\extra\httpd-sll.confの「Listen 443」を「Listen 444」、「ServerName localhost:443」を「ServerName localhost:444」にする。このように設定した場合はhttp://localhost/ではなく、http://localhost:8080/でアクセスする。

プログラミング

言語の比較 Interpreted Languages: PHP, Perl, Python, Ruby (Sheet One) – Hyperpolyglot Functions overview – php.js – Use PHP functions in JavaScript コーディング規約 変数とメソッドの命名ベストプラクティス15 – 杉風呂2.0 – A Lifelog –

LAMP環境を作る

Linux+Apache+MySQL+PHP。FreeBSDを使ったから実際にはBAMP? 主にFreeBSDでApache+MySQL+PHPをPortsを使って素速くインストール | WhiteMixを参考にした。 Apache $ add_pkg -r apache22 \# $ portinstall www/apache22 だと時間がかかる FreeBSDを起動したとき、apacheも起動するために/etc/rc.confに \# apacheをリブートしても起動するように設定 apache22_enable="YES" を追記する。 httpd.conf /usr/local/etc/apache22/httpd.confを編集する。 \# phpのための設定 LoadModule php5_module libexec/apache22/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps \# ファイル名がなくディレクトリ名だけ指定されたとき、探しに行くファイル <IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule> \# userごとの~/public_htmlを作って \# http://hoge.com/~username/でアクセスできるようにしたい場合は \# 以下のようにコメントを外す \# User home directories Include etc/apache22/extra/httpd-userdir.conf さらに~/public_html/cgi-bin/以下でcgiを使いたい場合は以下のように編集する [bash title=”/usr/local/etc/apache22/extra/httpd-userdir.conf”] Options ExecCGI SetHandler cgi-script [/bash] MySQl データベースはSQLiteを使うので飛ばす。 PHP5 $ cd /usr/ports/lang/php5 $ make config 以下を追加でチェックする

ニコニコ動画のタイムシフト予約のリストをGoogle カレンダーと同期してみた

PHP5でcurlが使えるサーバが必要。 同期の仕方 nicoTS2GCal.phpをダウンロードする 以下のようなconfig.phpを作る。 [php title=”config.php”] <?php define(‘MAIL_ADDRESS’, ‘[email protected]’); //ニコニコ動画に登録しているメールアドレス define(‘PASSWORD’, ‘password’); //ニコニコ動画のパスワード [/php] PHP Simple HTML DOM Parserをダウンロードする nicoTS2GCalというディレクトリをサーバ上に作り、nicoTS2GCal.php, config.php, simple_html_dom.phpをそこにアップロードする。(ディレクトリ名はそれぞれ変えたほうがいいかも。表示されないといえ、パスワードが書かれたconfig.phpの位置がばれるのはまずいかも) Google カレンダーの左にある「他のカレンダー」の▼をクリックして「URLで追加」を選択。URLとして<アップロードしたサーバのURL>/nicoTS2GCal/nicoTS2GCal.phpを指定 注意点 終了時間は取得できないので、開始時刻の1時間後とした Google カレンダーの更新頻度は半日に一回程度なので、すぐには反映されない やってること ニコニコ動画にログインする 参考にしたサイト PHPでニコニコ動画をダウンロードする方法 2008 | バレで昼寝 – CURLOPT_GETは現在はCURLOPT_HTTPGET PHPプロ!TIPS+ 生放送のマイページからPHP Simple HTML DOM Parserを使用して生放送の番組名と開始時間をとる 参考にしたサイト PHP Simple HTML DOM Parser Simple HTML DOM Parserのサンプル | PCスキルの小技・忘却防止メモ iCalendar形式で吐き出す

Web開発のためのEmacsの設定

Emacsについてはここ。PHPについてはここ。 設定 基本的にはPHP開発環境 on Emacsを見るとよい。 load-path 自分のload-pathの設定。elispのサブディレクトリも読み込んでしてくれる。 ;; load-path (let((default-directory (expand-file-name "~/.emacs.d/elisp"))) (add-to-list &#8216;load-path default-directory) (if (fboundp &#8216;normal-top-level-add-subdirs-to-load-path) (normal-top-level-add-subdirs-to-load-path))) AutoInstall 自分のauto-installの設定。auto-installのインストール先を~/.emacs.d/elisp/auto-install以下にした。 ;; auto-install (require &#8216;auto-install) (setq auto-install-directory "~/.emacs.d/elisp/auto-install/") ;Emacs Lispをインストールするディレクトリの指定 (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) ;install-elisp.elとコマンド名を同期 install-elisp.elはauto-installのバージョン。 Anything 現在anythingを管理しているrubikitchの記事によると”M-x anythingは非推奨”らしい。そこで (require &#8216;anything-startup) と設定する。しかしこれだけだと、 reference to free variable `org-directory</blockquote というエラーがでる。これを回避するためには、ここによると (defvar org-directory "") を上に追加すればよい。 PHP Mode 自分のphp-modeの設定。 ;; php-mode (require &#8216;php-mode) 以下は加えなかった。 ;;(setq php-mode-force-pear t) ;PEAR規約のインデント設定にする ;;(add-to-list &#8216;auto-mode-alist &#8216;("\\.

ガイガーカウンタのミラーサイトを作ってみた

かってに作っちゃったけど、緊急事態だからな。 ミラーサイト(http://sanrinsha.lolipop.jp/wget/wget.php) 落ち着いてきたので消しました。 ナチュラル研究所 ガイガーカウンタのデータをwgetで取得している。 更新するにはhttp://sanrinsha.lolipop.jp/wget/wget.phpに行かないとダメ。 http://sanrinsha.lolipop.jp/wget/park18.wakwak.com/~weather/geiger_index.htmlでは更新できません。 作った後、値が下がってきたので、本家に普通にアクセスできますな(^ ^;)。 [php] <?php $filename = ‘park18.wakwak.com/~weather/geiger_index.html’; if(!file_exists(“$filename”) || time() – filemtime($filename) > 60 * 10){//ファイルがないか、10分以上たっていたら shell_exec(‘wget -p -k http://park18.wakwak.com/~weather/geiger_index.html&#8217;); //文字化け対策 $source = file_get_contents($filename); $source = mb_convert_encoding($source, ‘UTF-8’, ‘SJIS’); $keys[‘Shift_JIS’] = ‘UTF-8’; $source = strtr($source, $keys); file_put_contents($filename, $source); } header(“Location: $filename”); ?> [/php]