アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

PHP

CodeIgniter入門 #7:データベースの操作<クエリビルダ編・参照系の巻>

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109 正直PHPよりSQLの方が得意なくらいでクエリビルダは大嫌いなんですが、 仕事で使うことは多い(のにいまいちわかっていない)ので ひたすら公式マニュアル見て書いて動かしてみまし…

CodeIgniter入門 #6:データベースの操作

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109 まあ公式マニュアルにまとまってるんですけどね。 データベースへの接続 — CodeIgniter 3.2.0-dev ドキュメント クエリ — CodeIgniter 3.2.0-dev ドキュメント 今回やること コント…

CodeIgniter入門 #5:ログが記録されるようにする

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109 今回やること エラーページを設置する エラーログが記録されるようにする 謎エラーが出た なんかね、ちょっとコントローラがつがつ書いてたら、なんかミスってたらしくエラーが出た…

CodeIgniter入門 #4:自作コアクラスを挟んでみる

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109 CodeIgniterにデフォルトで入っているWelcomeコントローラは以下のように始まっています。 class Welcome extends CI_Controller { ...これはsystem(コアシステム)内のクラスを継…

CodeIgniter入門 #3:複数サイトの設置に対応してみる

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109入門どころかいろいろすっ飛ばして応用してる感がありますがなんかうまいこと複数サイトを運用する方法あるかな、と思って考えてみました。 (レンタルサーバーなどドキュメントルー…

CodeIgniter入門 #2:軽く改造してみる

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109 今回やること デフォルトのディレクトリ構造を変えてみる データベースに接続する ドキュメントルートのダイエット やっぱドキュメントルート以下に丸々入ってるのが気持ち悪いので…

CodeIgniter入門 #1:Hello CodeIgniter World!!!

※「CodeIgniter入門する人向け記事」じゃなくて「自分がCodeIgniter入門してみた記事」ですCodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109仕事でCodeIgniter触ることになり自分でなんか作った方が理解早そうだなと思って、なんか…

デバッグ用に一時的にログファイル出力するやつ

PHP

別に一時的なログでなくとも同じようなもんですが、よく使うので…要するに自分用コピペメモです。 PHPで開発する際、デバッグで変数の中身を知りたいときはvar_dump等でお手軽に画面表示できますが、 諸々の理由で画面には出したくない場合もあります。 稼働…

アップロードされた画像をDBに保存する

作る機会があったのでメモ。 フォームのタイプとか、DBではなくファイルとして保存するとか、そういうアレンジは適当に。 手順 ざっくり分けると以下のような感じ。 画像のアップロードフォームを作る アップロードされた画像を加工する(リサイズなど) 加…

回数を指定して文字列置換

文字列を置換するのはふつうstr_replace関数を使用しますが PHP: str_replace - Manual これは文中の特定文字をすべて置換することしかできません。最初の1回だけ置換したいような場合はpreg_replaceで回数指定することができます。 第1~第3引数はいつも通…

連想配列で検索したい!!!

PHP

(2018-09-13:書いてるとおりには動いてたけど、実用を考えると破綻してたので、まるっと書き直しました)array_columnを使えないバージョンを使わざるを得ない時用。 使えるならこちらをご参照ください。 今回は以下のような連想配列から検索することを考…

複数の文字列データをカンマ区切りにするけど5データごとに改行する

PHP

関数化した。

PHPでファイルを扱うときのいろいろ

PHP

ファイルの書き込み読み込みやらCSVやテキストがどうやらというのは長くなるので、 ファイル自体の存在とかコピーや削除とかそういうやつ。 ファイルやディレクトリの存在を確認する

PHPでファイルパスを扱うときのいろいろ

PHP

主にファイルパスの文字列をもにょもにょわちゃわちゃしたりするときに使うやつ。 きれいなパスをつくってくれるやつ

JSとPHPでJSONデータを扱う

WEBアプリを作っていると、JSとPHPの間のデータのやり取りなどでJSON形式を使うことが多いので、 JSONを配列にしたり、配列をJSONにしたりする方法をメモ。 PHPで配列をJSONにする json_encodeを使います。 PHP: json_encode - Manual 変換したい配列以外に…

CSV取り込み時に日本語が無視される問題

PHP

初歩的な気がするけど。諸々UTF-8に揃えているつもりなのに、 fgetcsvでCSVを取り込もうとすると日本語が無視される。 ローカル環境(windows/xampp)は大丈夫なのにサーバで動かすとダメ。setlocaleされてないのが原因でした。 とりあえず処理の直前に入れて…

iframeのデメリットを無理矢理消化した実装(JS+PHP+Smarty版)

iframeの二大デメリット 「URLが切り替わらない(常にフレームの外側ページのもの)」 「内側ページのURLを直接叩くとフレームが出ない」 を解決すべく とりあえず↑を検討した後、やっぱ微妙だなと思って PHPとSmartyの力も借りて実装したバージョン。仕組み…

zipファイルを生成する

PHP

PHPでzipファイルを作る機会があったのでメモ。関数化したので次からこれ使おう。 "ファイルパス", 'zip_file_name' => "zip内でのファイル名") * という配列で表す * @param zip_path zipのパス * @return 正常ならtrue、失敗したらfalse */ function make…

ゼロ幅スペースとは

PHP

PHPにて、半角文字以外が含まれるかどうかを判別したく以下コードを書いてたんですよ。 正規表現部分は「!から~までの文字と半角スペース 以外」ですね。 if (preg_match("/([^!-~\s]+)/", $str, $matches)) { var_dump($matches[0]); }その中、こんな出力を…

ローカルのCSVファイルをアップロードして処理

ローカルからCSVファイルをアップロードしてその内容を処理する機能を作ることがあったのでメモ。 といってもアップロード機能自体はめちゃくちゃ簡単だった。エラーチェック系が沼。 HTML <form enctype="multipart/form-data" action="【※】" method="POST"> <input name="userfile" type="file" /> <input type="submit" value="送信" /> </form> これだけ…

特定の文字より手前を切り出す

PHP

別に難しい話とか裏技とかではないですが、 たまに使うのを毎回ガチャガチャ書くのが面倒なので自分のコピペ用に。例えばメールアドレス「hogefuga@example.com」の「@」より前、 つまり「hogefuga」のみを切り出したいときなどに。 $str = "hogefuga@exampl…

配列に要素がなければ追加、あれば何もしない

PHP

例えば以下2つの配列があるとします。 $list_1 = array( 'hoge' => 1, 'fuga' => 2, ); $list_2 = array( 'fuga' => 20, 'piyo' => 30, ); これについて、以下操作をしたい場合。 $list_1になくて$list_2にあるキーに対する要素を$list_1に追加する $list_1…

配列同士・文字列同士を比較し、重複している要素を除く

PHP

例えば以下2つの配列があるとして $list_a = array("a", "b", "c"); $list_b = array("b", "d", "e"); $list_a から、$list_b に含まれている要素を除いて array("a", "c"); という配列にしたい場合、array_diff関数を使えば一発です。 $list_a = array("a",…

プレースホルダのいい感じの作り方

PHP

頭が悪いタイトル。例えば以下のようなクエリを組み立てることはよくあるのですが SELECT ... FROM ... WHERE `id` IN (1, 2, 3, ...) ここ。 IN (1, 2, 3, ...) ここをPHP上で組み立てるのに最初は苦労しましたが、今は以下のように書いています。 $param_l…

mecabとPHPで形態素解析

PHP

そもそも形態素解析とは? 文章を「言語で意味を持つ最小単位」に分割し、それぞれの品詞等を判別する作業。 参考:形態素解析 - Wikipedia 形態素解析すると具体的にどうなるの? 元の文字列 吾輩は猫である。名前はまだ無い。 どこで生れたかとんと見当が…

TwitterAPIを使ってみる

…使ってみたのはもう何年か前なんですけど。 自分用メモが残っていたのでブログに書き起こしておきます。<追記> 2019年3月現在、 API自体も結構変わっているようですし アプリケーションの認証などがありフローがこの記事と異なっています。 参考までにと…

自分でWebサービスを作ってみる その2

前回はちょっとした書き換えレベルだったので、もうちょっとマシなHelloWorldをする。 (HelloWorldから先に進めていない…) コントローラを作る 以下のコマンドでコントローラができる。 単に app/Http/Controllers にファイルを作るだけじゃいかんのか?と…

自分でWebサービスを作ってみる その1

「なんかWebシステムつくりたい!」ので、自力で環境構築からサンプルプログラム作成までを目指す。 絵描いてる人が休憩にらくがきしはじめるみたいなやつ。…とはいえ、いつもコーディングが主なので環境構築自体はやらないんですよね… 慣れない作業なので手…

array_columnのかんたん代替

PHP

PHP5.5.0以降で使えるarray_columnという関数があります。例えば以下のような二次元配列があったとして $list = array( array('hoge' => 1, 'fuga' => 100), array('hoge' => 2, 'fuga' => 200), array('hoge' => 3, 'fuga' => 300), );fugaの値だけを抜き出…

PHPのゆるやかな比較の怖さを改めて思い知るの巻

PHP

if (0 == "-") { return true; } else { return false; } これがtrueになったので「!?」となりました。 「0 == ""」や「0 == null」がtrueになるのは知っていましたが…。一体どういうことなのかを調べてみると、 こういうケースでは文字列をint化して比較す…