読者です 読者をやめる 読者になる 読者になる

【php】Lineアカウントでのログインを実装する

php

はじめに FacebookとかTwitterアカウントでのログインは何回かやったことあったけどLineは初めてだった気がしたのでメモしておく。 といっても、ちょっとしたアカウント情報取得するのはやり方どれも同じような感じですけど。http://milk0824.hatenadiary.jp…

【php】配列を複数条件で検索、絞り込みする方法メモ

php

大した話じゃないけどメモ。 やりたいことは、配列から条件で絞り込むみたいなこと。 array_filter使えばよいみたい。 // 検索対象のリスト $items = [ ["name" => "田中", "gender" => "woman"], ["name" => "高橋", "gender" => "woman"], ["name" => "亀…

【Selenium】facebook/php-webdriverでスクレイピングする方法メモ

centosでseleniumでやる方法探してたらまさにやりたいことがこのページにまるまる載ってました。助かりました。ありがとうございます。 php-webdriverを使用してスクレイピングをした話 - 備忘録ほぼこのとおりにやったらいけました。 一部ちがったところと…

【cakephp】updateAllを呼んでもデータが更新されなかった原因メモ

あまり使ったことのないcakephpの改修でハマった。更新されない $this->MyModel->updateAll(array( "text" => "text", ), array( "id" => 1, ));文字列はクォートで囲むと更新される $this->MyModel->updateAll(array( "text" => "'text'", ), array( "id" =…

【php】cronのプロセスを監視する

はじめに 開発環境と現状はこんな感じ ・PHPで開発したスクリプトをcronで起動 ・処理時間が1日とかかかる ・いちおうエラー処理も実装したが途中で処理落ちすることがある(原因が特定できていない)で、やりたかったことは処理が落ちたらアラートメールとか…

【php】値渡し、参照渡しとか

php

値の値渡し function set($arr) { $arr[0] = 2; } $arr = [1]; set($arr); print_r($arr); // => [1]値の参照渡し function set(&$arr) { $arr[0] = 2; } $arr = [1]; set($arr); print_r($arr); // => [2]参照の値渡し function set($obj) { $obj->pro = 2;…

【fuelphp】controller名にアンダーバー(アンダースコア)を使う方法メモ

はじめに 今回やりたかったのは以下のようなurlを使いたかった http://example.com/member_groupで、fuelphpのコントローラの命名規則でアンダーバー(_)はフォルダ区切り文字なのでそのまま使えない。 routes.phpに以下のように書けばurlは実現できるけどフ…

【php】php5.6とphp7.0をwordpressで比較してみた

はじめに php5.6からphp7.0にしたらどれくらい速くなるのかというのを試してみただけ 環境としてはローカルPCにvagrantでcentos6.7、php5.6、mysql5.6、apache2.2.15をインストールして 最新バージョンのwordpressをいれてダミーデータを登録してapache benc…

【Laravel5】開発する上で最低限必要そうなことをまとめておく

はじめに 最近流行りのLaravelを調べたのでまとめておく 実案件で使うかは未定だが実際使うときに簡単に導入できるようにというのが目的 やること ・1. Laravelインストール ・2. 設定ファイルなどを修正 ・3. ページの作成手順(Routerの設定とViewとControl…

【Laravel5】エラーページ(500.blade.php)が呼ばれないときの対応

**はじめに以下の手順でエラーページをカスタマイズ(1) エラーページを作ってこちらに保存 resources/views/errors/500.blade.php(2).envのAPP_DEBUG=falseに設定で、わざとDBエラーが出るようにクエリを間違えて確認しようとしたら500.blade.phpは表示され…

Laravel5でControllerをサブディレクトリ以下に作る方法メモ

今回やりたかったのは以下のような形でControllers以下にサブディレクトリを作りたいことでした app/Http/Controllers/Category/Create.php app/Http/Controllers/Category/Edit.phpなんとなく調べていると以下の内容の記事が数件ヒットしたができないしよく…

php-mecabインストールで「checking for mecab-config... configure: error: not found」の対応メモ

phpでmecab - Qiita ここを参考にやったら1箇所だけ詰まったのでメモ > ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/bin/mecab-config ・・・ configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate…

mecabをインストールしてwikiの辞書データを入れてphpで使えるようにする手順メモ

はじめに 前やった時はあまりハマった記憶なかったのだが、今回は辞書データ作るところで何故かハマりました。。 ほとんど他サイトに書いてあるとおりだけどいちおう手順をまとめておく環境はcentos6.7ざっくり以下の手順 ・mecabインストール ・wikiからデ…

【fuelphp】phpunitでのテスト自動化入門〜使い方メモ

はじめに ずっとやろうやろうと思ってて放置していたテストです 残念なことに自分が携わってきた案件ではこれが使われていた案件はありませんでした。・自分は心配性な方なので割とデバッグは入念にやるためか ・たまたま案件に恵まれていただけなのか はわ…

【php】コマンドライン(cronから)で実行サーバーのipアドレスを取得する方法

はじめに 今回やりたかったことは複数のサーバーに同じスクリプトを置いて、それぞれを実行するcronを設置 処理結果をメールで送信するていう簡単なものでしたが、メールにどのサーバで実行されたものかわからないからメールにサーバーのIPアドレスくらいは…

【php】json_encodeで整形して出力する方法メモ

php

大した話じゃないけどこんな便利なことができたのか・・・こんな配列があります $array = array( "status" => 1, "result" => array( "total" => 200, "userList" => array( array("id"=>1, "name"=>"yamada"), array("id"=>2, "name"=>"sato"), array("id"=…

【php】simple_html_domで要素の次の要素を取得する方法

php

はじめに やりたかったのはスクレイピングで以下のように取得したいタグにclassもidもついていない場合で。 わかることはh3のタイトルの中身は同じでその後ろにtableがあってこのtableの中身を取得したかった ・・・ <h3>表のタイトルです</h3> <table> <tr><th>ID</th><th>名前</th></th> <tr><td>1</td><td>太郎</td></th> <tr><td>2</td><td>花子</td></th> </table> …

【adminLTE】fuelphpで管理画面を作るときのひな形メモ

はじめに 【adminLTE】管理画面として使うときのテンプレートひな形としてまとめておく - とりあえずphpとか 僕はfuelphpを使っているので、こちらの内容をfuelphpで使う場合のひな形 ファイル構成 header.php・・・全画面共通で使うヘッダー部分 footer.php…

phpで暗号化・復号化

php

ちょいちょい探す機会があったのですが今のところこれが1番良さそう暗号化・復号化共通定義 $password = "abcd"; $iv = "12345678"; $options = OPENSSL_RAW_DATA; $method = 'des3';暗号化 // 暗号化したい文字列 $input = "test"; $encrypt = openssl_encr…

vpsでサーバー構築するときに必ずやってる設定などまとめ

前にも同じようなこと書いた気がしますが、時間が経つとちょっとずつやってる内容が変わってくるのでメモしておきます。 ちなみにさくらのvpsです sshの設定 作業ユーザーの作成 sudo許可 鍵認証設定 パスワードでのログイン禁止と外部からrootでのログイン…

mysqlからデータを取得してわざわざphpでソートする

はじめに 僕はけっこうコレやります。 どういうときに使うか考えて見る・レコードが多い複数のテーブルをjoinしなくてはならない場合 ・テーブル分割していてそれぞれのテーブルからデータを取得してきて結果をマージしなくてはならない場合などなど テーブ…

【apache】.htaccessはhttpd.confと比較して速度が遅いのか

大した話ではないのですが、昔.htaccessを使っていたら速度が遅いから使わないでと言われました。 apacheが毎回.htaccessを探して内容を解析して実行・・・のような流れになるので漠然と遅いのだろうなとは思っていましたfuelphpを使っているサービスでfuelp…

【Aws】SQSを使ってみた

はじめに やりたかったことはアクセスが多いサービスでDBへのデータの登録など時間がかかりそうな処理を非同期で行うということ。 ちなみにデータの更新結果によって画面の表示がかわるような場合では使用できません。 今回は主にログデータの登録なのでこの…

【adminLTE】スライダーメニューのデフォルトの開閉状態を指定する方法

はじめに bootstrap製の管理画面テンプレートのadminLTEの画面左のスライドメニューについてメニューオープン メニュークローズ こんな感じのかっこいいのがあるのですが、 1. メニューを閉じる 2. 画面遷移する 3. メニューが開いた状態になってしまうこう…

php・mysqlでミリ秒単位でタイムスタンプを保存する方法メモ

めったにやることもないとは思うけど、今回必要だったのでメモ やりたかったことはphpからmysqlにデータを登録する場合でミリ秒単位でdatetime型のカラムに登録したかったことですmysqlのスキーマ定義 CREATE TABLE table_name (ttt DATETIME(6));DATETIME型…

【php】パスワードを保存する機能の実装方法について考えてみた

はじめに ログイン画面でよく目にする「パスワードを保存する」チェックボックス これの実装を依頼されて、よく考えてみたらやったことないなと気づきました・・・ 基本的なこと機能ではあるとは思うのですが・・・・案1・・・クッキーにログインIDとパスワ…

サードパーティクッキーの使い方・使い分けまとめメモ

はじめに 今回やりたかったこととしては ・Googleアナリティクス ・各社の広告用トラッキングタグ みたいに他サービスに自分が作ったタグなりJSのコードを埋めてもらってクッキーを扱いたかったことですで、大きく分けて上記のタグの形式(Googleアナリティ…

【Aws】Elastic Beanstalk(Worker)を使ってみた

はじめに 今回、少しアクセスの大きいサービスの開発をawsで行っています。 で、とにかくレスポンスはなるべく早めに返したいということで以下のユーザーへのレスポンスへ影響のない処理を非同期に行うことを検討しました ・メール送信 ・ログデータなどの登…

【fuelphp】MySQLのIN句の使い方メモ

使いたいときはいつも忘れてるので自分用にメモやりたいSQL select * from users where id in (1, 2, 3);fuelphp $user_ids = array(1, 2, 3); $query = "select * from users where id in :user_ids; $params = array("user_ids" => $user_ids); DB::query(…

【fuelphp】APIバージョンを意識したAPI設計について考えてみた

はじめに アプリリリース後にバグが見つかり、アプリ(ios,androidoともに)とAPIを改修する必要がある場合がありました。 対応としては 1. アプリを強制アップデートさせる(最新バージョンでないとアプリを使えないようにする) 2. 過去のアプリのバージョンと…

【aws】phpからdynamodbを使う方法メモ

はじめに awsのdynamodbをログ保存用として使用 今回は他の人が作った環境での作業だったのでコントロールパネル等の設定は記載しません不慣れなのもあると思うけど、データの取得と登録する調査をするだけでけっこう時間かかってしまった、、、 今回はIAMロ…

【fuelphp】Paginationをカスタマイズして使う手順

はじめに 仕事でちゃんとWebページ作ると避けて通れないのがページングかと思います。 で、過去にはやったことあるとは思うのですがやっぱり少し時間かかりました。 次回、同じことがないようにメモしておきます configの設定 まず、 fuel/config/pagination…

【fuelphp】共通処理をPackage化して複数サイトで使う方法

はじめに 1つのfuelphpで複数サイト(一般ユーザが見るサイトと管理者が見るサイト等)を共存させるというのは僕はよくやります。 で、以前に以下の記事で共通処理をシンボリックリンク化してしまう方法を紹介しました。 fuelphpで複数サイトを構築する方法 …

【fuelphp】MySQL接続エラー[HY000/2002]と[Call to undefined function Fuel\\Core\\mysqli_init]

はじめに 今更感のある内容ですがけっこうハマったのでメモしておきます。 環境としてはAwsのEC2をWebサーバーにRdsをDBサーバーとする構成で Webサーバーにはmysql-serverをインストールしていない状況です。mysql-clientはWebサーバーにインストール済みで…

YoutubeAPIで再生回数順の動画リストを取得する方法

はじめに YoutubeAPIを使って何かできないかなと思って、サンプルを作ってみたのでそのときのメモ。ちなみに本当にやりたかったことは日別、月別などの再生回数順のリストを取得して簡単なランキングサイトでも作りたかったのですが、今のところやり方がわか…

【fuelphp】セッション保存先をredisにする方法メモ

はじめに 検索したらいっぱい出てきました。いちおう自分用にもメモ 手順 config/session.phpの準備 「fuel/core/config/session.php」を「fuel/app/config/session.php」にコピーfuel/app/config/session.phpを編集 // 32行目くらいにのdriverをcookieからr…

【fuelphp】ログを分割(複数ファイルに出しわけ)する方法

はじめに 今回やりたかったのは、デフォルトでは1ファイルにまとめられているログファイルを複数ファイルに分割したいということでした。デフォルトの以下のところを fuel/app/logs/YYYY/MM/DD.php以下のように用途別に出し分けたけたかったです fuel/app/lo…

webエンジニアが新しいmacを購入してはじめにやった設定メモ

はじめに 会社で作業用にmacbook airを買ってもらって、とりあえず作業に支障がないように設定なりをやった作業をメモ。 個人でもmacは2回買ったことがあるけど、だいたいやってる作業は同じかなぁと思います ちなみに今の作業は主にLAMP環境でのサーバーサ…

【PHP】コマンドラインでサイトへのログイン処理を実装する方法

php

はじめに 今回やりたかったことは、APIなどが公開されていないサービスでのログイン処理をバッチなどで行って処理するということ。イメージとしては ・会員制サイトへの自動書き込み ・オークションサイトへの自動出品とかでしょうか。大手のサイトだったらA…

【php】ssh2_scp_sendでファイル転送する方法メモ

php

はじめに あんまりやる機会なさそうだけど、次やるときのために一応メモ。はまったこととしては、エラーは出ないのに一部のファイルが65536バイトまでしか転送できていなかったということ・・・転送でファイルサイズの上限があるのかなとか思ったんですけど…

【fuelphp】クエリビルダでinsert select構文を実行する方法メモ

はじめに sqlを直接かいちゃえば、以下のような感じで簡単にかけるんですけど今回はこれをfuelphpのクエリビルダで実現してみたのでメモしておきます insert into table1 (colum1, colum2, ・・・) select colum1, colum2, ・・・ from table2 where ・・・o…

【fuelphp】クエリビルダでSQL_CALC_FOUND_ROWSを実現する方法メモ

はじめに クエリビルダを無理やり使ってみて、少し慣れてきたらすごい複雑なSQLを書かない限りそこまで困らないかなと思ってきました。ただcoreの中を覗いてみた感じだとページングなどでよく使われるSQL_CALC_FOUND_ROWSを実現する方法がなさそうで、強引に…

fuelphpでのsqlのログ出力する方法

はじめに fuelphpで必ずやってる設定などまとめ - とりあえずphpとか 僕がメインでやれる案件では上記の形で開発をしています。こちらにも書きましたが、基本的にsqlをゴリゴリ書くのが好きなのでクエリビルダなどは使わないで開発することが多いです。その…

fuelphpとsocket.ioでのチャットシステムの作り方まとめ

はじめに 何度かまとめようと思ってたんですけど、なかなかちゃんとまとめられなかったので今回再度まとめてみようと思います。socket.io単体での実装方法はよく見かけるのですが、LAMP環境で構築されたシステムと一緒に構築されるサンプルがあまり見かけら…

phpからs3にアップロードしたファイルが14byteになっていてハマったのでメモ

はじめに fuelphpからs3(aws)を利用する方法メモ - とりあえずphpとか こちらでfuelphpからs3を利用する方法を書きましたが、画像をアップロードしたファイルが14byteになってしまってブラウザから見ようとしてもエラーに、、、 というところでハマったので…

fuelphpからs3(aws)を利用する方法メモ

はじめに やりたかったことは、ec2上で構築したwebサーバーからプログラムでs3へ保存、削除したかったことです。AWSのS3を使う手順 - とりあえずphpとか こちらでs3を使う手順をまとめましたが、その際にs3fsを使ってec2にs3をマウントしたのですが実際にプ…

AWSでLAMP環境を構築する手順

やりたいこと awsを使ってLAMP環境の構築。 使用するサービスはEC2、S3、CloudFrontの3つ。 EC2の1インスタンス(1サーバー)にLAMPをインストール。 S3には画像等の静的コンテンツをアップロードして、CloudFrontからS3へとコンテンツを取得。 CloudFrontか…

cordova + phpでセッションを維持する方法

はじめに 本当は今、これについての具体的な実装例を書きたかったというか試してみたかったのですが無理そうなので、具体的な実装・実験は明日以降に行うとして理屈だけメモします。まずcordovaアプリでセッション処理を行う場合、以下の様な環境になると思…

fuelphpで複数DBに対応する方法 - 大規模サービスも想定して

やりたいこと ある程度の規模のサービスや構成上db自体を分けた方が効率よく開発、運用できることがあるかと思います。 その際にfuelphpではどのように開発するか考えてみる想定している構成 ・マスタdbA ・スレーブdbA ・マスタdbB ・スレーブdbB db設定 今…

fuelphpでセッションidをurlパラメータで引き回す方法

やりたいこと タイトルのとおりですが、http://example.com/?session_id=*** のようにurlでセッションidを引き回してセッションを使用したかった。 ガラケー(フューチャーフォン)時代はcookieが使えない端末が多かったのでこのようなやり方はよくやってまし…