サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
www.php-seed.net
最近 PHP のセットアップ時にいつもやってる設定 | バシャログ。 /etc/php/php.ini [PHP] expose_php = Off 上記記事を読んでて、『ほー最近はセッションの保存先をデフォルトでmemcachedにするのが流行り?』などと思っていましたが、php.iniの設定でexpose_phpというのがどうも記憶に無かったので調べてみました。 expose_php boolean PHP がサーバーにインストールされていることを全世界に晒し、PHP のバージョンも HTTP ヘッダに含めます (X-Powered-By: PHP/5.3.7 など)。 PHP のロゴの guid も公開されるので、PHP を有効にしたサイトの URL にそれを追加すると guids are also exposed, thus appending them to the URL of
Nabble – Php Japan – PHP-users – [PHP-users 31653] PHP mcryptとjavascript間での暗号化/復号化について PHP mcryptとjavascript間での暗号化/復号化についてのお話&サンプルを上げてくれています。参考になりますね。
requires PEAR Installer (version >= 1.6.0) などと出た時の pearアップグレード Linuxのディストリビューションパッケージでpearを入れて、例えばMail_Mimeをインストールした時など、 # pear install Mail_Mime WARNING: channel "pear.php.net" has updated its protocols, use "channel-update p ear.php.net" to update pear/Mail_Mime requires PEAR Installer (version >= 1.6.0), installed version is 1.4.9 pear/Mail_mimeDecode requires PEAR Installer (version >= 1.6.0),
このブログでも今まで、Zend FrameworkでRequestを取得する時に [php] $id = $this->getRequest->getParam(‘id’); [/php] とか [php] $data = $this->getRequest->getParams(); [/php] とかアクションコントローラ内でしていたのですが、もっと簡潔に [php] $id = $this->_getParam(‘id’); [/php] でいいんですね。 全体を取得する場合は、 [php] $id = $this->_getAllParams(‘); [/php] で。冗長でしたね。
表目次 2.1. サンプル CMS 用のアクセス制御 3.1. 設定オプション 4.1. Core フロントエンドのオプション 4.2. Function フロントエンドのオプション 4.3. Class フロントエンドのオプション 4.4. File フロントエンドのオプション 4.5. Page フロントエンドのオプション 4.6. File バックエンドのオプション 4.7. Sqlite バックエンドのオプション 4.8. Memcached バックエンドのオプション 5.1. Zend_Config_Ini コンストラクタのパラメータ 8.1. 日付要素 8.2. 基本操作 8.3. 日付の比較用メソッド 8.4. 日付出力用のメソッド 8.5. 日付の出力用メソッド 8.6. 雑多なメソッド 8.7. Zend_Date::HOUR を使用した操作 8.8. 日に関する定数 8
オデの日記@WEB系: Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減 で、このZend_Db_Tableですが、生成する度にdiscribetable()というメソッドが呼ばれテーブル情報を取得します。とても便利なのですが、都度DB接続が行われ非効率すぎるのでZend_Cacheを利用してデータをキャッシュさせておきます。 discribeTable()が走るタイミングは ・insert() ・find() ・info() を呼んだ時だそうです。 というわけでキャッシュを組み込みましょう。 [php] $frontendOptions = array( ‘automatic_serialization’ => true ); $backendOptions = array( ‘cache_dir’ => TMP_PATH ); $cache = Ze
Zend Framework: Documentation 10.4.2.4. AJAX リクエストの検出 Zend_Controller_Request_Http には、 AJAX リクエストを検出するための基本的なメソッド isXmlHttpRequest() が用意されています。 このメソッドは、HTTP リクエストヘッダ X-Requested-With に ‘XMLHttpRequest’ という値が設定されているかどうかを調べ、 設定されている場合に true を返します。 ちょいちょいドキュメントは確認しているんですが、こんなのも追加されていたんですね。ふむふむ。 関連する記事: Zend Framework – Zend_Controller_Requestで使えるgetメソッド ZendFrameworkのControllerをPHPUnitでテストする ページ遷移のme
正規表現を組んでいて、なんだか思い通りの挙動をしないなーと思った時、思い出してください。 マニュアル:パターン修飾子 u (PCRE_UTF8) この修正子は、Perl 非互換な PCRE の機能を有効にします。パターン 文字列は、UTF-8 エンコードされた文字列として処理されます。 この修正子は、UNIX では PHP 4.1.0 以降、Win32 では PHP 4.2.3 以降で 使用可能です。 また、PHP 4.3.5 以降では、パターンの UTF-8 としての妥当性も確認されます。 UTF-8な文字列をpreg系で使っている時は、uオプションを有効にしましょう!
さくらインターネットMySQLを自動バックアップしてgmailに送る: PHPの種 ブログで運用していたところ、記事にこんなコメントが。 ネットワーク越しにバックアップするとなると、何らかの暗号化をした方が望ましいと思いますが、何か良い方法はないものでしょうか。 確かに言われてみればそうですね。MySQLにブログデータしか入ってなかったので、セキュアな考えが抜け落ちてました。ありがとうございます。 さくらのレン鯖にはgpg2が入っているので、それを活用させてもらいましょう! /usr/local/bin/mysqldump –opt -c -h [MySQL SERVER] -u [USERNAME] –password=[PASSWORD] [DB NAME] | /usr/local/bin/gpg -c –cipher-algo AES256 –batch –passphrase “
さくらインターネットで MySQL のバージョンを 4 から 5 に移行: PHPの種 ブログ ↑なんて感じでさくらインターネットでのMySQLを5に変えたのですが、これでmysqldumpが(文字コード的に)安定したということで、前諦めた自動バックアップを設定しておこうと思いました。 mysqldumpしてメールで送るうんぬんは今までも色んなところでやられていると思いますが、今回困った点としては uuencodeの添付ファイルだとgmailでうまく扱えない です。 ~ | uuencode attached.file | mail -s attached.file hoge@gmail.com なんてお手軽にしたかったんですが、どうもダメみたい。 で、普通に添付メールとして送れるコマンドを探していたらmuttやらemailやらあるものの、どうにもさくらインターネットのレン鯖に素直に入れら
PHPでお手軽マルチタスクってできないの? – ぎじゅっやさん cURLにはマルチタスク処理用のcurl_multiというものがあるんですね。 マニュアルにはこうあります。 [php] 0); // ハンドルを閉じます curl_multi_remove_handle($ch1); curl_multi_remove_handle($ch2); curl_multi_close($mh); ?> [/php] これは素敵ですね。マルチタスク的なものを自前で作ろうと思っていたのですが、とりあえずコレで色々とテストしてみたいと思います。
Smartyマニュアル を紐解くと、 {$smarty.const} PHP 定数の値に直接アクセスできます。smarty 定数 も参照してください。 定数を出力するテンプレート {$smarty.const.MY_CONST_VAL} とあります。メモメモっと。 関連する記事: Smartyで数値を3桁毎にカンマで区切るには。 Zend FrameworkでFlexigrid習作 SmartyでShift-jis 出力 Zend Framework 1.0でSmartyを使用する Zend FrameworkでSpeedy
MySQLにおける、utf8_general_ci と utf8_unicode_ci の違いとは何か。 MySQLの照合順序における、utf8_general_ci と utf8_unicode_ci の違いとは何か。よくわからなかったのでマニュアルを紐解くと、MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 9.10.1 Unicode キャラクタセットにて、こう書かれています。 現在、utf8_unicode_ci照合順序はUnicode 照合順序アルゴリズムを部分的にのみサポートしています。中にはまだサポートされていない文字もあります。また、結合マークは完全にはサポートされていません。このことはベトナム語を中心に、ロシア内のマイノリティ言語に影響します。 utf8_unicode_ci主な特徴は、拡張をサポートしていることです。それは1つの文字が他の文字のコ
Flexigrid Jqueryベースのテーブル修飾script、FlexigridをZend Frameworkで使ってみよう、という習作です。 マイコミの記事を参考にしながら作ってみました。 テーブルデータは id,title,description,date のありがちな感じで。 とりあえずは、テンプレート。Smartyで作ってありますが、HTMLそのままですから、他のテンプレートでも問題ないでしょう。 [smarty] [/smarty] 確かjqueryは$(){~だけで、ready()の効果があるような気がしたけど、とりえあず。 Flexigrid本体は、ダウンロード>解凍したものを、ルート/js/flexigrid/の中に直接放り込んであります。今回はjqueryだけ、別途用意したものを読み込んでいますので、pathにご注意ください。 このテンプレートを/flexigrid/
クデラボ -KudeLab- » PHPでMeCabを使って形態素解析をするときのメモ PHPでMeCabを使う時は、MeCab extensionを用いりますが、あえて(か、必要にせまられて)extension moduleを使わないで、MeCabを使う方法を示されています。 $descriptorspec = array( 0 => array(“pipe”, “r”) , 1 => array(“pipe”, “w”) ); $process = proc_open(“/usr/local/bin/mecab”, $descriptorspec, $pipes); if (is_resource($process)) { fwrite($pipes[0], $text); fclose($pipes[0]); $result = stream_get_contents($pipes[
さくらインターネットで、mysqlのデータをバックアップしておくと、何かあった時に幸せかもしれません。 #! /bin/sh date=`date +’%y%m%d’` file=mysql-backup-$date dir=$HOME/opt/backup /usr/local/bin/mysqldump –opt -c -Q –host=[dbserver] \ –user=[user] –password=[password] [table] > \ $dir/$file /usr/bin/bzip2 $dir/$file バックアップ先を $HOME/opt/backup としてありますので、ディレクトリを作成して、そこに上記のスクリプトを置いてcronなどで回しましょう。
㈱とかⅡ(←ローマ数字)とかの特殊な記号はUTF8からShift_JISやEUC-JPに直接変換できません。メールで送る場合、特に携帯が絡んでくると、Shift_JISやEUC-JPにどうしても変換したい場合がありますので、何とか上手く記号を橋渡し出来ないかと色々調べてみましたが、出来ないようです。 というわけで別のアプローチとして、特殊記号を普通の文字に『ひらいて』から変換しようというスクリプトたちがこちらです。 UTF-8で変換できない機種依存文字を置換する 機種依存文字の変換 機種依存文字の変換 私は三番目の機種依存文字の変換を使用させていただいてます。 関連する記事: 文字コード変換(EUC-JP→UTF-8)にはまる SmartyでShift-jis 出力 いわゆる半角カナや種依存文字などをメールで送信する方法 – t_komuraの日記 MobilePictogramConve
ついつい忘れてしまうのでメモしておきます。 まあ、Zend Framework云々というよりはただ単にヘッダーを忘れてしまうのですが。 コントローラのActionメソッド内で [php] $this->getResponse()->setHeader(“Content-type”,”application/pdf”); $this->getResponse()->setHeader(“Content-Disposition”,”attachment; filename=$filename”); $this->getResponse()->setHeader(“Content-length”,$size); [/php] とか。 PDF自体の出力はご自由に。ファイルから直接読むもよし、PDFlibで生成するもよし。 テンプレートを使うもよし、そのまま出すのもよし。 ファイルから直接出す場合は
PHPの種 ブログ » WordPress高速化 先日の記事で取り上げたWordPress高速化を実際に行ってみました。 とりあえずのベンチとしてabで [code] $ ab -n 100 -c 10 [blog_url] [/code] とした結果がこちら。(残念ながらPHPの種ブログ本体ではありません) Concurrency Level: 10 Time taken for tests: 23.312433 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 3896984 bytes HTML transferred: 3876178 bytes Requests per second: 4.29 [#/sec] (mean) Time per request:
戻るボタンで戻ったらフォームの内容が消えちゃうPHP (デザネスマガジン) セッション使ってると戻るボタンで戻った時にフォームの内容が消えてしまう問題ですが、 session.cache_limiter という値に ’none’ を入れます。 htaccessで制御する場合は php_value session.cache_limiter none だね。 PHP内で制御する場合は session_cache_limiter(‘none’); だね。 noneをprivateにすると、一見うまくいったかに見えるが、今度はキャッシュが残りすぎちゃって、 ブラウザを閉じて開きなおしても前の情報が残ったままになっちゃう。(ただしIEだけ) ちなみにデフォルトはnocach。キャッシュするなという設定ですな。 noneは余計な制御をせずに普通のページと同じように扱えっちゅうことですわ。 と、セッシ
Smartyで文字を丸める時は、truncate修飾子などを使いますが、残念ながら日本語などのマルチバイトに対応していません。 ですが、PHPの関数をそのまま使用できるので、マルチバイト対応のmb_strimwidthを使ってみてはどうでしょうか。 [smarty] {$hoge|mb_strimwidth:0:15:”…”|escape} [/smarty] 無事丸められましたでしょうか。 mb_strlenのような文字数と勘違いしてましたが、mb_strwidthで得られるのと同じ、文字幅なんですよね。 自分でオリジナルの修飾子を作るのも良いと思います。 関連する記事: Smartyで日本語などのマルチバイト文字をmb_strimwidthで丸める時の注意。 Zend_Mail_Part で メール解析 Zend_Validate_Alnumがなんかおかしい – 適当にメモったらこうな
PHP による SQL から XML への変換 DBに入ってるならXMLにするのも簡単だろう、と作ってみると激しくややこしいんですよね。というわけでこういったライブラリ非常にありがたいものです。 XML_Query2XML XMLとしてダンプしてデータベースのバックアップをとる、というのは面白いアイデアですよね。CSVで取るより容量は大きくなるけど汎用性が高まりそうです。 まあ、今使う予定は全くないんですが、一応メモ。
このブログにも、はてブへのリンクボタンを追加したいな、と思って探したらWordpress用のプラグインがあったので導入してみました。 それがwp-hatenaです。 使い方はとっても簡単。普通にpluginをダウンロードしてpluginフォルダに入れて、各種設定から有効化するだけです。 そして、ボタンを表示したい場所に [php] addHatena(); ?> [/php] と追加するだけ。私は日付の横に入れましたが、 [php]
Firebug用YSlowプラグインが出たことにより、またhttpレスポンス圧縮の話題が再燃しているような気がします。(参考) Apache側でmod_gzip,mod_deflateが設定できれば良いのですが、レンタルサーバなどでは設定できないことが多いです。そういった場合にはPHPでアウトプットを圧縮して送信することができます。方法としては主に php.iniの設定でzlib.output_compression を有効にする。 ob_start()のコールバック関数 ob_gzhandler を使用する。 があります。 zlib.output_compressionに関してはとても簡単で、php.iniに zlib.output_compression = On の行を入れるだけです。おそらくコメントアウト状態で入っているので、 #zlib.output_compression =
このブログでも、Tidy無しのPHPでHMTL Parserなどで、パーサを紹介したりしましたが、どうもPHPはWEBスクレイピングに関してPerlやRubyほど強くない、というかライブラリが出揃ってないような気がしますね。表題のWeb::Scraperが便利すぎて困るの巻 (CodeZine編集部ブログ)はPerlですし、こういうのを見ていると非常に便利そうです。まあLLは目的に応じて使い分けたり、他の言語だと簡単にできるのにーという処理は素直に他の言語にまかせたりするのが良いと思います。 ・参考URL PHPによるスクレイピング処理入門 HTMLScraping Class Snoopy の説明 Tidy関数
PHPにはいわゆるswapのような関数が無いため、どうしても [php] $a = “hoge”; $b = “huga”; $temp = $a; $a = $b; $b = $temp [/php] のように一時変数を使う形でしか変数の値入れ替えを行えませんが、listを使うとスマートに解決できます。 [php] list($a, $b) = array($b, $a); [/php] listをこんな風に使えるとは。。素敵です。 参考URL http://phpdream.seesaa.net/article/19564637.html
I often visit your site and have noticed that you don’t update it often. More frequent updates will give your website higher rank & authority in google. I know that writing content takes a lot of time, but you can always help yourself with miftolo’s tools which will shorten the time of creating an article to a few seconds. I see you don’t monetize your page, don’t waste your traffic, you can earn
CakePHP勉強会を開催しました! & 発表資料です : akiyan.com 私自身はCake使いではなく、今のところZend Frameworkerなのですが、そんな私が見てもとても勉強になる内容でした。 Zend_Db_Tableでfetchメソッドに検索条件を渡すとき、 [php] $where = array( ‘status = ?’ => ‘active’, ‘confirmed_email = ?’ => ‘yes’, ); $us = $users->fetchAll($where); [/php] なんて指定しますが、コントローラでこんなことしなくないな、と思った時どうするか? 普通によくやるのは、モデルのメソッドに組み込んじゃう、 [php] class Users extends Zend_Db_Table_Abstract { public function g
IDEA*IDEAさんで紹介されてました、HTMLの要素をSQLのように取り出せるPHPのライブラリ、htmlSQL。これは素敵なスクレイピングライブラリです。ちょっと使ってみましたが、なかなか面白く、使いやすいものになっていると思います。 SQLのようにというのは、sampleを紐解くと、 SELECT * FROM h1 SELECT * FROM a SELECT * FROM td SELECT href as url, text FROM a SELECT * FROM a WHERE preg_match(“/^http:\/\//”, $href) SELECT * FROM a WHERE preg_match(“/^\/snippets/i”, $href) and preg_match(“/^array_/i”, $text) SELECT * FROM * SELEC
次のページ
このページを最初にブックマークしてみませんか?
『プログラムの種ブログ | 種を蒔いて刈り取る。』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く