タグ

phpに関するwarabiのブックマーク (42)

  • http://blog.uu59.org/2012-02-18-prefork-mpm-with-php.html

  • ファイルのアップロードを制限する

    今回は、HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。受け付けるファイルのサイズ制限や、受け取ったファイルを置くディレクトリなど、注意しなければならないことが意外に多くあります(編集部) POSTデータの最大サイズを制限する 第37回から、PHPの実行時設定の中でも、初期設定のまま放置しない方が良い項目を紹介し、それぞれの設定変更法を解説しています。第38回(前々回)と第39回(前回)で、HTTPクライアントが送信してくるリクエストデータに関係する設定項目について解説してきました。今回は、残った数少ない設定項目を片付け、リクエストデータの扱いに関する解説は今回でおしまいとします。 今回最初に取り上げるのは「post_max_size」ディレクティブです。このディレクティブは、POSTメソッドで受け取るリクエストデータの最大サイズを指定するものです。Webブラウ

    ファイルのアップロードを制限する
  • PHPプロ!Smarty講座

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • Ground-SunLight

    — y2sunlight ,Since 2019-10-02 Ground Sunlight は「Windowsで作る - PHPプログラミングの開発環境」をテーマにしたサイトです。 オープンソースを利用している全ての人達に祝福を!

    warabi
    warabi 2011/11/10
    理解しやすいプラグインの説明
  • デザイナーとの協業での工夫 Smartyプリフィルタの活用法 - maru.cc@はてな

    いま行なっている案件で、社外のデザイナーさんが作ったデザインをシステムに取り込むという件があり、お互いに労力の少なく出来る方法を考えてみたのでここに残しておく。前提として、システムばりばりなものではなく、デザインがメインだが、フォームがあるページや投稿系でシステムで出すべき一覧ページがあったりするようなサイトの場合です。 基的な思想 基的には、デザイナーさんが作ったhtmlファイルに極力プログラマ側で手を入れない。逆にプログラム上必要なタグ等を埋め込んだ場合には、そのマージ後のファイルを修正してもらう。 今回は、フレームワークにEthna、テンプレートエンジンにはSmartyを使ってあります。 最近、Smartyよくないという風潮ですが、プリフィルタなどのプラグイン機能は有用だと思います。 仕組みとして作ったもの 1. .htmlファイルをエントリポイントにする 2. Smartyのデ

    デザイナーとの協業での工夫 Smartyプリフィルタの活用法 - maru.cc@はてな
  • PHP - ファイル名から拡張子を取得する関数、ベンチマークもあるよ - たきゃはしです

    拡張子取得、それは十人十色の関数である 一般的な拡張子を取得する方法は '.'を区切り文字として配列を作り、最後の要素を取り出す 拡張子があるであろう箇所を正規表現で検索、置換して取得する 最後に出る'.'を検索して以降を抜き出す など、他にもたくさんあります。 でも、パフォーマンスにバラつきはあるはずだし、 どうせなら「一番いいのを頼む」って考えるのが人の性ってもんですよね 拡張子を取得する関数たち エントリーNo1 正規表現の関数で配列に分割して最後の要素を取得する <?php $filename = '大きい画像a_1010.jpg'; $exts = split("[/\\.]", $filename); $n = count($exts) - 1; $ext = $exts[$n]; echo $exts[$n]; エントリーNo2 関数で拡張子を正規表現で検索、置換して取得する

    PHP - ファイル名から拡張子を取得する関数、ベンチマークもあるよ - たきゃはしです
  • さぼてん: 【文字コード】UTF-8(BOM付)でファイル書き込み【PHP】

    Webサイト制作。PHPとかMySQLとかプログラム寄り。symfony、CakePHPPerlと和解交渉中。 PHPでテキストをUTF-8(BOM付)の文字コードでファイルに保存する。 以下プログラム。 $filename = "./BlandList.xml"; $fp = @fopen($filename, "wb") or die("Error"); fwrite($fp, pack('C*',0xEF,0xBB,0xBF));//BOM書き込み fwrite($fp, $sdadata);//データ書き込み fclose($fp); fwrite($fp, pack('C*',0xEF,0xBB,0xBF))でファイルの先頭にBOFを書き込んで、それからテキストを書き込んでいる。 Windows環境ではバイナリがデフォルトらしいが、環境依存を避けるため"wb"としてバイナ

  • 【 ほでなすPHP 】 PHP5の基本 -> スタティックメンバ/クラス定数

    スタティックメンバ/クラス定数 インスタンスメンバとクラスメンバ/スタティック(静的)メンバ PHP4では、「::演算子(コロン2個)」を使う事で、クラスのインスタンスを生成しなくても、静的にクラスのメンバ関数(この場合「クラス関数」と言う)をコールすることが出来ました。また、メンバ変数の参照は出来ず、静的にコールするクラス関数内でメンバ変数を参照する事も出来ませんでした(これは、メンバ変数を参照するために「変数$this(オブジェクト自身へのリファレンス)」を使用する必要があるが、静的にコールする場合はオブジェクトが存在しない為)。 PHP5では、ちょっとした小細工をする事でメンバ変数の参照が出来るようになります。 メンバ変数を静的に参照する場合は、そのメンバ変数の定義時に、アクセス制限修飾子とは別に「static修飾子」を付与してやります。また、この「スタティック修飾子」はメンバ関数に

  • 【メモ】UTF-8で文字化けしないメールを送る【PHP】 - nplll

    最近のメーラーはUTF-8で受けれるよね、ってことで、メールフォームから自分が受けるメールについてはUTF-8でエンコードして受け取るようにしてみたのだけど、一部理解が足りずに上手くないことになってたのでメモしておきます。 起きた問題 差出人の名前が日語の場合、一部のメーラーで読むと差出人が落ちる。 問題が起きたメーラー 問題が起きたメーラーは以下の通り。 Thunderbird 2.0.24 Thunderbird 2.0.24からバージョンアップしたThunderbird 3.0.4 問題が起きなかったメーラー 以下のメーラーでは再現しなかった。 Becky 2.54 Thunderbird Portable 2.0.24 Thunderbird Portable 3.0.4 補足 まさか「同じThunderbirdでも環境によって読めないことがある」とは思わなかったので、問題にしば

  • ===による配列の比較は順序をチェックする【PHP】 - Programming Magic

    連想配列(ハッシュ)で作ったツリー構造の中に、ある配列(要するに部分木)が含まれているかをチェックする処理を実装しようと思ったときに、ふと==による配列の比較と===による配列の比較はどう違うのだろうと疑問が浮かんだ。==と===の違いについては、以前『厳密な比較 [PHP]』で詳しく調べてみたものの、配列の比較はあまり詳しく見ていなかった。 そこで==と===で配列の比較をした場合の違いを詳しく見てみたところ、意外なことがわかった。 まずは以下の例でどちらもtrueになることを確認する。 <?php $a = array( 'a' => 'x', 'b' => 'y', ); $b = array( 'a' => 'x', 'b' => 'y', ); var_dump($a == $b); var_dump($a === $b); ?> bool(true

  • ウノウラボ Unoh Labs: 配列要素の存在チェック

    こんにちは。今月入社したyamaokaです。よろしくお願いいたします。 さて、PHPで配列要素の存在チェックを行う場合、どうされていますか? 2通りの書き方があると思いますが、実は動作が異なる場合があるのです。 if (isset($array['foo'])) { // (1) // 存在する } if (array_key_exists('foo', $array)) { // (2) // 存在する } (1)の場合、要素の値がnullだと存在しないものとして扱われてしまいます。(2)では、該当するキーが存在しさえすれば存在するものとして扱われます。 配列の要素がnullになる可能性がある場合、array_key_exists関数を用いてチェックを行う必要があります。isset関数が使用できるのは、要素の値がnullにならないとわかっている場合だけです。 実行速度はどうでしょうか。P

    warabi
    warabi 2011/06/14
  • PHPセッションのGC - まつぼっくりんご

    PHPのセッションハンドラをデフォルトで使っている場合のガーベージコレクタ(GC)の話。 PHPはサーバ上で保存してあるセッション情報を保存してあるファイルをを定期的に削除している。 削除するタイミングはPHPが起動する時、HTTPリクエストまたはコマンドラインからPHPが起動した際に一定の確立でGCが起動するようになっている。Javaのアプリケーションサーバならメモリ上にJVMが常駐しているからプログラムの起動とは非同期にできるが、PHPは同期で処理している。そのため、PHPではGCが起動したときにプログラムの実行時間が長ってしまう。 よって、大規模サイトになったときには必然的にセッションファイルが扱うセッションが多くなるため、GCにかかる時間が長くってしまうから、GCはPHPに任せないで自前で用意すべき。 PHPのGCを制御する設定はphp.iniに記載されている以下の3つ。 ses

  • WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ:phpspot開発日誌

    (追記) 2/16 23時 いくつかのライブラリを追記しました。 WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ。 家pearには560程のモジュールがあります(2011/2月現在)が、WEBサービスを作る上でよく使う物をまとめてみました。 これからPHPを使ってサービスを作ろうと思っている方は代替を使うことになると思うので参考にしてみて下さい。 php はインストール時点で既に多くの機能が備わっており、大体のことができてしまいますが、PEARを使うことで面倒なことがより簡単にできるようになります。 PEAR以外にも便利なライブラリはあるのですが、今回はあえて殆どをPEARサイトで公開されている物に絞ってご紹介します。 基的なパッケージ まず、汎用に使える便利なパッケージのご紹介です。 HTTP_Request2 url を渡してリモートのテキストを取って

  • Webアプリから2行でExcelファイルを出力する方法 - bricklife.weblog.*

    Webアプリから2行でExcelファイルを出力する方法 Webアプリから Excel や Word のファイルをたった2行で生成する方法です。 この方法を使えば、Spreadsheet::WriteExcel/ParseExcel などを使わずに、かつどんな環境のどんな言語で記述されているWebアプリケーションでも、Excel文章を出力できます。厳密に言うと、「ExcelやWordでも開けるファイル」なんですけどね(^^; はじめて教えてもらった時に、感動というか拍子抜けしたので、みなさんも同じ気持ちを味わって下さい(^^ もったいぶって背景から。 会社にお勤めのみなさんには共感していただけると思いますが、世の中にはすべての作業を Office系アプリで行う方がいらっしゃいます。そういう方が「今後○○のデータはサーバで管理しよう」などとおっしゃりはじめたら、「お、どんなシステムだ?」と期待

  • perl や PHP で Excelファイル(xlsファイル)を簡単に出力する方法 | perl/CGI | 阿部辰也のブログ――人生はひまつぶし。

    perlPHP で、Excelファイル(拡張子が「.xls」のファイルとか)を出力するために、色々とライブラリみたいなものがあるみたいなんですが、裏技的でちょっと邪道な、もっと簡単な解決方法があります。 Excel で作った文書を保存する際に、「Webページとして保存」というメニューがあることからも想像できますが、Excelhtml文書を開いたら、普通に Excel 文書として読めるんですよね。 なので、 perlCGI や PHP で、Excel 形式で出力しようと思ったら、perlCGI や PHP でよく出力する Content-type ヘッダ一覧 (MIME-type)を参考に、以下のようなヘッダを出力。 #-- perl の場合 print qq|Content-type: application/vnd.ms-excel\n\n|; #-- PHP の場

  • Side-B » Blog Archive » Smarty:PHP側でconfファイルを読み込む

    Posted by マルタ | 2006.11.21 at 18:14 [ Posted in Smarty, PHP ] PHPのテンプレートエンジンSmarty。 便利なのかなーと思ってちょっとずつ勉強してるんですけど、ずっとわからなかったことに、「PHP側でconfファイルを読み込む」というのがありました。 やっとわかったぞ、のメモ。 my.tpl テンプレートでは {config_load file="my.conf"} この操作とまったく同じことを、PHPでやるには my.php <?php $smarty->config_load('my.conf'); ?> そうかーなるほどね。 そして、セクションの読み込みも可能だそうです。 参考リンク config_load config_load get_config_vars…読み込まれたコンフィグ変数を取得。

  • Smartyの拡張プラグインを作成する手順 - mahata weblog

    Smarty用の拡張プラグインを作成する手順を示す。 目的:PHPのstrip_tagsに相当する修飾子を作成すること Smartyのデフォルトの修飾子に、「strip_tags」というものがある。 文字列から、マークアップタグを取り除く修飾子であり、 タグ付きの不正な出力を避けるにはこれを利用するのが通例である。 けれども、これでは"ある特定のタグを許可したい"という要求に応えられない。 PHPのstrip_tags関数では第2引数で指定したタグを許可できるので、 これを利用して、Smartyのプラグインとして実現することにした。 実装方法:Smartyのマニュアルが秀逸(超平易な説明!!) まず、プラグインファイルの命名規則に従い、 ファイル名を決定する。 type.name.php type は次のプラグインタイプのうちのいずれか1つです。 function mod

  • 68. Smartyのmodifierを使いこなそう

    みなさんSmartyは使ってますか?今回はSmartyを使ってる方に送るTIPSです。 Smartyでは modifier という機能があります。知ってる方も多いでしょうが、これはSmartyにassignされた変数をイジるためのものです。 PHPに用意されている関数をパイプ「|」でつなげるだけで使用することができます。 たとえば、 $smarty->assign('name', 'atsushi'); とスクリプト内で変数をアサインしておき、 {$name} {$name|strtoupper} とテンプレートに記述すると atsushi ATSUSHI とこんなふうに表示されます。 1. modifierに配列を渡す ここで、こんな配列をアサインしてみます。 $name_list = array( '0' => 'atsushi', '1' => 'yoshiki', '2' => '

    68. Smartyのmodifierを使いこなそう
  • ITプロフェッショナル部:PHPの日付計算

    PHPで1週間前の日付の取得方法がわからなかったので、 調べたところ下記の記述が出てきました。 ↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓ //今日の日付を取得(タイムスタンプ) $date_today = mktime (0, 0, 0, date("m"), date("d"), date("y")); //一週間前を取得 $date_oneweek = $date_today - 86400 * 7; ↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑ 86400というのが一日を表しているらしいです。 その数値×7日で一週間分の数値を求め、それを日のタイムスタンプから引くと、 一週間前の日付が取得できるといった原理です。 確かにちゃんと動くのですが、当にこの方法しかないのか?? と思い調べたところ違う書き方もありました。 しかも、上記の

    warabi
    warabi 2010/06/10
  • PHPにおける文字列比較の2a問題 - Unknown::Programming

    PHPの文字列比較に関しては古の時代から皆がいばら道を通っているので今更何か語ることも無いんだけどやっぱり良くハマっちゃうということで軽くメモを残しておく。 とりあえずは先人達の苦悩ということでこのあたりの記事は見ておいた方がいいだろう。 素晴らしき自動的な世界〜或いは「型のない」世界〜 - がるの健忘録 PHPでの入力値チェックのすり抜け 上記記事の方が名づけたと思われる(w)いわゆる「2a問題」というものについて書いていく。 この2a問題というのはもう一度再確認すると <?php $a = '2a'; $b = 2; if ( $a == $b ) { // ここを通る } という問題のことだ。 何故こうなるかは元記事やマニュアル等に詳しく書かれているが、カンタンに説明すると「2a」という文字列を数値評価すると「2」として扱われるということだ。 実はコレはPerlでもまったく同じ問題を

    PHPにおける文字列比較の2a問題 - Unknown::Programming
    warabi
    warabi 2010/06/10