タグ

phpに関するknoのブックマーク (266)

  • cakePHPのfindAllで柔軟なJOINを行う - nori0620のメモ

    やりたいこと あるコントローラでfindを実行する際に,一箇所でのみ特定のテーブルとJOINをしたり,状況によってJOIN設定を変更する方法について考える. もっとも、そこまで特殊で数箇所でしか使用しないリレーションの場合,直接SQLを書いてしまったほうがラクだったりもする。 今回、findをJOINするのは,他のコンポーネントとの兼ね合い。特にPaginationコンポーネントを利用する場合に、直接SQLを書くとコンポーネントを利用したページング設定に手間がかかりそうだから。 $model->beforeFindを設定することで、そのmodelに関するfindのSQLを発行するときのJOINの設定などを行うことができるが、これはmodel自体の設定のため、findを使用している箇所全てに適用される。 (詳細は→CakePHP findAll で INNER JOIN する方法 | Sun

    cakePHPのfindAllで柔軟なJOINを行う - nori0620のメモ
    kno
    kno 2008/06/11
  • CakePHP 静的なページの作成方法 | Sun Limited Mt.

    CakePHP で静的なページを作成する方法です。 正確には CakePHP が出力するページなので静的ではなく動的なのですが、ページを簡単に作成することができます。 出力するページをテンプレートとして /views/pages/ ディレクトリ以下に作成します。 作成したテンプレートが hoge.thtml だとすると http://exmaple.com/pages/hoge でアクセスできます。 これだけで簡単にページを追加することができます。 コンテンツは静的なものですが、ビューなので例えばログイン状態によって表示を変更したりなどできますね。 なぜ /pages/hoge でアクセスできるかというと /app/config/routes.php で $Route->connect('/pages/*', array('controller' => 'pages', 'action'

    kno
    kno 2008/06/11
    "/pages/hoge"
  • CakePHP cakeError でエラー処理 | Sun Limited Mt.

    CakePHP でエラー処理をさせるのに cakeError を使ってみました。 致命的なエラーのときに、メールを送信したりログを記録したりするのに使えるかと思います。 /app/error.php を作成 class AppError extends ErrorHandler { function foo($params){ // ここにエラー処理を書く // $params を展開 extract($params); // view のディレクトリを指定 $this->controller->viewPath='errors'; $this->controller->set('message', $message); $this->controller->render('foo'); exit(); } } エラー用のビューを app/views/errors/foo.thtml に作

    kno
    kno 2008/06/06
  • creative@interactive » CakePHPとカレンダー表示(2)

    CakePHPとカレンダー表示(2) 8月 15th, 2007 日が空いてしまいましたな。 なぜか知らないが時間に追われている。お腹空いた〜。 でも黄色い人にケツを叩かれてしまったので頑張るよ! では前回の続き。カレンダーをどうするのかっていう話。 CakePHP Calendarは使おうとしたのだけど、ぶっちゃけちょっと導入が大掛かりすぎないかってぐらいファイルがある。 ↑展開後のファイル群 何だ?これ。モジュールとかコンポーネントとかそういうレベルのお話じゃないのかな。これじゃもうアプリケーションだ。 さあPEAR::Calendarにするか!(←はやっ!) とりあえずPEAR::Calendarをダウンロード 。 PEARはコマンドラインから叩いてパッケージマネージャを使ったほうが依存ライブラリなんかも全部導入してくれるのでよいのだけど、PEARのコアパッケージとPHPが入っ

    kno
    kno 2008/05/30
    PEAR使えばいいじゃん、な話
  • HTMLをスクレイピングして解析(パース)する - まるさんかくしかく Tech学習と入門ログ

    Twitter Facebook B! Bookmark LINE Pocket Feedly HTMLスクレイピング(scraping)してあれこれとするとき、僕はずっと正規表現に頼っていたのですが、 ページの構造が変化するとすぐに使えなくなってしまうし、時間がかかる割りに退屈な作業なので何とかならないかなと思っていました。 PHPで探していたのですが、XML(とかRSS)をパースする関数やライブラリは、良く目にするものの、HTMLを処理できるものはなかなか見つかりませんでした。 以下は、PHP(とかRubyPerl)でHTMLスクレイピングしたりパースするための方法。 PHPスクレイピング&パース HTMLを整形式のXML文書に修正するPHPクラス HTMLを、整形式のXMLに変換してくれるライブラリ。PEARのXML_HTMLSax3が同梱されているので、これだけでちゃんと動

    HTMLをスクレイピングして解析(パース)する - まるさんかくしかく Tech学習と入門ログ
  • Keith Devens .com - PHP XML Library, version 1.2b

    Introduction Examples Notes Download the source Contact me History Introduction Face it, XML is a pain. This simple library tries to make it much less painful. It allows you to easily parse XML into a PHP data structure, and it allows you to serialize PHP data structures into XML. Many other programming languages have easy-to-use XML interfaces (Python's is particularly nice, AFAIK. Lots of

    kno
    kno 2008/05/22
  • PHP コード最適化 Best Practices 63+ - カタコト日記

    みたいなタイトルの記事を Digg 経由で発見。チートシート代わりにと思い超訳。*1 A Software Architect PHP 最適化 ベストプラクティス! 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09

    PHP コード最適化 Best Practices 63+ - カタコト日記
    kno
    kno 2008/05/22
    strtrとな
  • PHP で UTF-8 に付いている BOM を削除する方法

    PHPUTF-8 に付いている BOM を削除する方法 2006-06-05-1: [PHP] UTF-8 に BOM (Byte Order Mark) が付くのが良いのか,悪いのかは分からないけど,問題が多そうな気がする. Windows に付いているメモ帳はご丁寧に BOM をつけてくる. - When a BOM is used, is it only in 16-bit Unicode text? http://www.unicode.org/unicode/faq/utf_bom.html#25 上記の記事によると,ファイルの先頭 3 バイトに EF BB BF があれば,UTF-8 に付く BOM らしいので,これを判別して削除する方法. function delete_bom($str) { if (ord($str{0}) == 0xef && ord($str{1

  • PHPプログラムで日本語が文字化けする場合の対応

    PHPプログラムで日語が文字化けする場合の対応 Web+DBプログラミング入門 Apache + PHP + MySQL編の PHPサンプルプログラムを実行した結果、MySQLのテーブルに格納し、 PHPプログラムでブラウザ上に表示した日語(漢字・倍角の文字)が 正しく表示されない場合はDBへ接続しているプログラムソースの //DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root $dbHandle = mysql_connect("localhost","root","root"); //DBの接続に失敗した場合はエラー表示をおこない処理中断 if ($dbHandle == False) { print ("can not connect db\n"); exit; }

    kno
    kno 2008/05/15
  • 多次元配列を、1次元の配列にする関数を書いてください。

    以下のように、多次元配列の配列をペチャンコにする関数(array_flatten)ってどうかきますか? <?php $arr[0] = 'a'; $arr[1][0] = 'b'; $arr[1][1][0] = 'c'; $arr[1][1][1][0] = 'd'; $arr[1][1][1][1][0] = 'e'; $arr[1][1][1][2] = 'f'; $arr[1][1][2] = 'g'; $arr[1][2] = 'h'; $arr[2] = 'i'; function array_flatten($arg){ 処理; } $new_arr = array_flatten($arr); print_r($new_arr); ?> ↓ Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] =

    多次元配列を、1次元の配列にする関数を書いてください。
    kno
    kno 2008/05/12
  • Spreadsheet_WriteExcel: Classes for generating Excel files - PHP Classes

    kno
    kno 2008/05/12
  • PHP4でのXMLデータの取り扱い - EC studio 技術ブログ

    はじめまして! EC studioで技術担当をしている須藤裕嗣です。 今日はPHP4におけるXMLデータの取り扱いについて紹介します。 PHP5においてはXMLのサポートも強化されており、 SimpleXML拡張モジュールなどの便利な関数を 最初から利用することもできます。 「PHP5の関数をPHP4で使う - PHP_Compat」でもお伝えした通り PHP4は2007年末でサポートを終了となります。 しかし、まだまだPHP4で動いているシステムも多いのが 現状ではないでしょうか。 PHP4において、どのようにXMLを処理することができるのか いくつかご紹介いたします。 xml_parse()関数 Keith Devens - PHP XML Library XML_Unserializer xml_parse()関数 (PHP4の組み込み関数) サンプルとして以下のXMLデータを解析し

    kno
    kno 2008/05/12
  • 「@」でエラー抑制すると PHP が遅くなるという噂について : a My RSS 管理人ブログ

    PHP では @ を付けることでエラーを回避できるという便利な記述方法があり、ものぐさな私などは if (@$var["foo"]) $result = $var["foo"]; みたいなコードを書いてしまいます。 で、この処理が「遅い」という噂やツッコミを度々受けるので調べてみました。 「ほら、そんな気にするほどでも無いよ」という結果を期待していたのですが、、、なんじゃこりゃ。。。 劇遅じゃないですか、これ。 いやはや・・・ ちょっと列挙しますね。以下のようなコードを単純 for 文で 100万回実行したときの結果です。 error_reporting(0) で PHP4 if (@$a["hoge"]) $b = $a["hoge"]; ⇒ 約 2.4 秒 if ($a["hoge"]) $b = $a["hoge"]; ⇒ 約 1.3 秒 if (isset($a["hoge"]))

    kno
    kno 2008/05/09
    「劇遅じゃないですか、これ。」
  • Sabel PHPフレームワーク

    Sabelは拡張性に優れたWebアプリケーションのためのPHPフレームワークです。アプリケーションが要求する高い自由度を許容し、フレームワークに捕われ過ぎない柔軟な開発を行うことができます。>> Sabel 1.2 Beta1 Released Sabel 1.2では「デフォルトはシンプルに」の精神を追求し、配置直後である標準の状態をより軽量化しました。しかし軽量化によって機能や拡張性が損われたということはありません。アドオンやプロセッサの変更、コアライブラリの組合せなどにより、多くの機能を実現することが可能です。 XML・RSSパッケージの追加、コントローラのMixinやアノテーションによるAspectの適用、Sabel JSでは最大16倍の高速化を図るなど、様々な実践的な機能追加・向上が行なわれています。 Download Sabel 1.2 Beta Sabel: Open-sou

    kno
    kno 2008/04/28
  • php:正規表現を使って、HTMLタグの中以外の改行コードをBRに置き換える処理を教えてください。…

    php:正規表現を使って、HTMLタグの中以外の改行コードをBRに置き換える処理を教えてください。 今、正規表現を使って、HTML文章中の改行コードを、BRに置き換える処理をPHPにて実装しています。 が、この方法がわかりません。 最初は単純に改行コードをBRタグに置き換えればよいと思っていたのですが、、 この方法だと、HTMLタグ中に入っていた改行コードもBRに置き換えられてしまい。 例えば <img src="xxx" ¥n alt="xxx"> が <img src="xxx" <br> alt="xxx"> になってしまいます。 正規表現を使えば、タグの中の改行コード以外をBRに置き換えるという処理ができそうなのですが、処理方法がわかりません。 割と普通に使われそうな感じだったので、ググッて見たのですが、解りませんでした。 *ここは確認しましたが、これだけでは理解できませんでした。

    kno
    kno 2008/04/28
  • CakePHP Modelに関する6つの誤解

    CakePHPのModelはActiveRecordライクなDBアクセス方法を提供しており、さらにアソシエーションを設定することにより複数テーブルの値を同時に操作できるなど、DB操作に対するインターフェイスが数多くあります。 ただ「手軽にDB操作ができる」という印象が先行しているゆえ誤解を招くことがあるようです。 1. クラス名に対応したテーブルしか操作できない Modelのクラス名とテーブルを自動でマッピングするのはフレームワークのいわば便利機能です。デフォルトでそのような動作をするだけで、容易に変更することができます。 Model#$useTableにテーブル名を指定すれば任意のテーブルを操作できます。 <?php class Foo extends AppModel { public $useTable = 't_user'; // t_userテーブル } ?> 2. DBを使わな

    kno
    kno 2008/04/12
    「CakeのModelもいわゆるMVCのModelと同じです。」
  • htmlspecialchars/htmlentitiesの正しい使い方

    (Last Updated On: 2018年8月16日)追記:このエントリは古い情報です。今のHTMLエスケープの情報は以下の新しいエントリを参照してください。 PHPHTMLエスケープ PHP_SELFはそのまま出力できないに htmspecialchars($str, ENT_QUOTES); じゃなくて、 htmspecialchars($str); で終わらせてしまった場合の、 問題例が非常に欲しいです!! とコメントを頂きました。 htmlspecialcharsとhtmlenties関数はENT_QUOTESを指定しないとENT_COMPAT(セキュリティ上問題があるが互換性を維持)が指定された状態と同じ動作をします。 ENT_QUOTESは”と’の両方をHTMLエンティティに変換するオプションです。ENT_COMPATは”のみHTMLエンティティに変換します。 JavaS

    htmlspecialchars/htmlentitiesの正しい使い方
    kno
    kno 2008/04/10
  • [php][PECL]tidyで<title>タグの中身を取得 | うえちょこ@ぼろぐ

    久しぶりのphpエントリです。tidyを使ってみようと思って、サンプルを書きました。tidyのいい資料がネット上にないのですが、どなたかご存じないですか? [phpcode]/** * HTMLのタイトルを取得する */ function getTitle($input, $is_file = false, $encoding = ‘utf8’) { // tidyオブジェクトの作成 $tidy = new tidy(); // htmlの読み込み if ($is_file) { $tidy->parseFile($input, array(), $encoding); } else { $tidy->parseString($input, array(), $encoding); } // 整形 $tidy->cleanRepair(); // タグの中身を取得 $headNode =

    [php][PECL]tidyで<title>タグの中身を取得 | うえちょこ@ぼろぐ
    kno
    kno 2008/03/17
  • PHPit - Totally PHP » HTML Parser Class

    This is a HTML parser class, used to parse HTML and XML. One of the unique features of this class is that it supports the innerHTML property. /** * HTML/XML Parser Class * * This is a helper class that is used to parse HTML and XML. A unique feature of this parsing class * is the fact that it includes support for innerHTML (which isn't easy to do). * * @author Dennis Pallett * @copyright Dennis Pa

    kno
    kno 2008/03/13
    これでぶっこ抜いてみる
  • phpによるスクレイピング処理入門

    1. はじめに このサイトは php を利用したスクレイピング処理の具体的手法について記載されたサイトにしようと思っています。なので、あまり面白いサイトではありません。内容も偏重していることと思いますが、ご質問などがございましたら、りょーちまでご連絡ください。 1.1. スクレイピングとは スクレイピングの話しを始める前に、現在のWebサービスについて幾つか言及しておきます。 現在様々な会社が様々なWebサービスを展開しています。かなり昔、今よりWebサイトそのものが少ない頃の時代は、HTMLファイルを手動で作成することが殆どでした。しかし、現在はバックグラウンドにデータベースが存在し、データベースの内容を動的に表示し、ページを作成するようなサイトがかなり多くなっています。 さて、データベースを利用するメリットは何でしょうか? 幾つかの視点が挙げられると思います。 最も重要な点は、ひとつひ

    kno
    kno 2008/03/13
    「この決まったフォーマットを解析し、データ部分のみを取り出す手法をスクレイピングと呼びます。」