超メモ帳(Web式)@復活

小説書いたり、絵を描いたり、プログラムやったりするブログ。統失プログラマ。


SPONSORED LINK

技術的な話題-PHP

さくらインターネットのレンタルサーバでAPCuを使って高速化を行なった。

長文要約システムの負荷対策のためにさくらインターネットのレンタルサーバのAPCuを使いました。簡単な使い方まとめときます。

はてなブックマークのRSSのAPIのAccess-Control-Allow-Origin対策のためproxy作成した。

まずは質問箱の告知から。日曜日は質問箱への回答を行います。今週はまだ質問がきていないのですぐに答えることができます。 https://marshmallow-qa.com/yuki_20211?utm_medium=url_text&utm_source=promotionmarshmallow-qa.com そっすね最近は質問は減少…

iPhoneのSafariでキャッシュを無効にする方法。

最近のイケているプログラマってのはGitHubで書いたソースを共有して、Qiitaで技術ブログを書くものらしい。まぁ、僕は全然イケてないのでなんでもごちゃ混ぜの雑記ブログで技術情報まで書く。元々は僕のブログは技術ブログだったのだが、思いつきをなんでも…

PHPの三項演算子が駄目な理由。

会社からなんで手短に。 今日、PHPの入門記事が炎上しているのを見たんですよね。あれは叩かれても仕方ない内容だったとはいえ、アウトプットした初心者を注意するにはやり過ぎな気がしました。中にはプログラミング界の有名人の方も居ましたし。なんとなく…

PHP Debug Barを使う。

普通、コーディング中にデバッグをするときはprint_rやvar_dumpなどを使って、プリントデバッグをするが、これは本番環境で残してしまうと変なところにテスト文を出力してしまい、営業の人などにすっごく怒られる。PHP Debug Barはそういった不安を減らすこ…

SmartyでXSS対策を行う方法。

現状のお仕事はCMSを仕様に合わせてビジネスサイトを作るお仕事だが、このCMSが駄目コードであるが故にほとんど自作の俺々ライブラリ群を作っている状態になっている。まぁ僕はそっちの方が楽でいいんですが、仕様が最近までちゃんと決まってなかったので追…

facebook、twitter、Google+からカウント数を取得する。

必要になったので実装した。twitter、facebookは専用のWebAPIが用意されているけど、Google+に関してはいいねボタンから無理矢理に数字を抜き出した感じである。いやまぁ、ほぼコピペなんですが(転載元さんありがとう)。 Google+についてはPHPのOpenSSLが…

Facebook、Twitterのアカウントでログインできる処理を作る。

最近のWebアプリではよく付いていますよね、TwitterとかFacebookのアカウントでログイン出来る処理。必要になったので、ちょっと実装方法などをメモしておく。 最初っからスクラッチで作りこもうかと思ったけど、面倒かつ車輪の再発明なのでそんなことはしな…

pukiwikiにスパムフィルタを導入する。

GW中は管理している同人サイトのWordpressなどのレイアウト変更に当てようと思って、久々にサーバの中身などを整理していたら、昔に設置したpukiwikiに海外からSPAM投稿が入っていてげんなりした。多分、SEOスパムなんじゃないかと思われるのですが賞賛する…

PDOでutf8なのに文字化けした。

懐かしいなこの感じ。PHP4時代などはふつーにEUC-JPとかShift-JISが全盛だったので文字化け退治がPHPerの嗜みの様な所がありました。 MySQLのテーブルもUTF-8だし、ファイルもすべてUTF-8なのに文字化け発生。mb_convert_encodingも効かない。 どうやらPDOの…

スクレイピングで使えそうなライブラリを見つけた。

僕はpixivをスクレイピングしてイラストなどを集めているのですが、そのクローラのコアになるプログラムがJava製なのですね。しかも他人の開発したものなんですよ。動作することには動作するんですけど、たまに止まるし、オープンソースじゃないからカスタマ…

Smartyのassignで代入した変数をテストするときに楽する方法。

基本的にSmarty::assignした変数をテストするには下記の感じ。他でテンプレートファイルを用意して、Smarty::fetchで出力した内容をassertEqualsで比較するというのが常道。 {* foo.tpl *} <html> <head></head> <body>{$hi}</body> </html> <html> <head></head> <body>Hello World!</body> </html>

ラッパークラスを使う場合にはコンストラクタで引数を使う

かなり変則的な状況だけど、詰まったのでメモしておく。 Smartyなどのインスタンスをラッパークラスで管理して、なおかつそのラッパークラスを別のクラスで利用して、そのなかでSmartyのクラス変数を利用する。みたいな。 言葉で説明するのが面倒だな。ソー…

PHPUnitで表示する内容をテストする。

今してるプロジェクトで、Viewクラスの構築を行っているのだけど、PHPUnitで単体テストを同時進行で作りながらコーディングしている。僕は一気に高速コーディングできるタイプのプログラマじゃないから、ユニットテストで細かくテストしながらの構築が常套手…

PHP5.4.0からビルトインサーバが入っていた

PHP: ビルトインウェブサーバー - Manual PHP5.4以降からBuiltin Serverが導入されているようです。PHPをブラウザでテストするにはapacheやらのWebサーバサービスをインストールしなければならなかったけど、コマンド一発で省略できます。ちょっとしたWebア…

twitterもどきCMS Laconica

ローカルで使えるtwitterモドキが必要だ - 超メモ帳(Web式) 以前、ローカル環境で使えるTwitterもどきが必要だと書いたんですが、以外と反響あるみたいなんでその対応策をひとつ。 会社や学校等ローカルにも使える高性能Twitterクローン「Laconica」レビュ…

CassandraのPHP用クライアントをインストール

PHPからCassandraを使うには、ThriftをインストールしてPHP用Cassandraクライアントを生成するという方法もあるのですが、phpcassaなるライブラリを利用したらThriftのインストールがバッサリとショートカットできた…。一応Thriftを使った方法はウノウラボさ…

xdebugとWinCacheGrindを使ったPHPのプロファイル

お仕事で使っているPHPのバッチ処理が遅くなってきているので、プロファイルを行ってリファクタリングをしようと思ったので、xdebugとWinCacheGrindを使ったプロファイル方法をメモ。 xdebugのプロファイルを有効化 Windows環境でXAMPPをインストールしてい…

Call-time pass-by-reference has been deprecated

久々に管理しているdokuwikiを開いてみるとタイトルのエラーが発生していたのです。 Warning: Call-time pass-by-reference has been deprecated in /home/yuki_2021/public_html/wiki/inc/common.php on line 848 対象箇所のソースを見ると下記のような感じ…

TokyoCabinetを使ってみた

お仕事の関係でPHPを使ってTokyoCabinetを使うことになったので、インストール方法やその他もろもろをまとめておきます。 公式 Tokyo Cabinet: a modern implementation of DBM Tokyo Tyrant: network interface of Tokyo Cabinet インストール方法 by FreeB…

makeでPHPとRubyの構文チェックを使えるようにする。

Vimをつかって:makeを入力すると構文チェックを使えるようにする方法がありますけど、PHPやRubyなどのファイルごとにコンパイラを変えて構文チェックをする方法が分からなかったのでメモ。 環境はWindows+香り屋vim。 _vimrcに下記の記述を追加。 " PHP構文…

include,requireされたファイルを表示する

レガシーなコードなんかを扱っていると*1、インクルードされたファイルもつぎはぎで意味が分かんなくなってきたりします。とりあえずそんなときはget_included_filesを使って全てのインクルードファイルを表示しましょう。 require("bin_conf.php"); require…

Warning: Division by zero

0で割るんじゃねーよ、タコ。ってことらしいです。忘却のWEBプログラマー人生辞書 PHP エラー Warning: Division by zeroとは?

portsでSmartyをインストールしたら行方不明になった

Smartyを使いたくてソースからダウンロードしようかなと思ったら、portsにあったんでportsでインストールしてみるかってことでインストールしてみた。 そしたらSmarty.class.phpが行方不明。locateを更新し直して検索して見つけた。/usr/local/shearにあった…

$_REQUESTはGET変数とPOST変数の両方を受け取れる。

タイトル通り。GET変数かPOST変数かで判定処理をしている場合もあるかと思いますが、$_REQUESTを使用したらシンプルにできます。 たとえば下記の処理は、$_REQUESTで処理するとかなり短縮できます。 $mode = isset($_POST['MODE']) ? $_POST['MODE'] : $_GET…

$_SERVER[&amp;amp;quot;HTTP_X_FORWARDED_FOR&amp;amp;quot;]で迷う。

環境変数でユーザのIP取得するのは分かっていたけど、REMOTE_ADDRと何が違うのかわかんないんで検索。 調べたところ、プロキシを通した場合の接続元のIPを出力するらしい。 PHP開発者が便利に使える10のスニペット集:phpspot開発日誌で Proxy経由でもでき…

CakePHP1.2でのcake bakeの使い方。

ちょっとCakePHPを勉強しようと思ってCakePHPガイドブックを買ったのだけど、CakePHP1.1にしか対応しておらず、cake bake にてトラブル。ググってみるとCakePHP1.2からはcake bakeの方法が違っていたようなのでメモメモ。 [1.2]Easy Bake on Windows: CakePH…

コーディングスタイルとか。。

PHPで仕事をするときの注意 (#1290697) | PHPは駄目な言語なのか? | スラド あぁ、耳が痛いです org 自己流のフレームワークを作ってバグの巣窟にしたことあるし、コーディング規約とか、いまだに守れてない。 PHPでプログラミングするときはhttp://framewor…

いまさらだけど自分もとりあえず一言二言、PHPについて言わせてもらう。

404 Blog Not Found:そろそろPHPに関して一言いっとくか 子飼弾さんのエントリーより、まぁ、いまさらだけど尻馬に乗ろうという魂胆です。ネタが無いとか言うな。 PHPは勉強しやすい。 PHPは、C言語出身者にとっては非常に使いやすい。逆もしかり、PHPからプ…

ユーザ認証の方法、アイディア

考え事。 大体、Webアプリとかでのユーザ認証って、IDとパスワードだけど、これってキーロガーとかに関しては脆弱だよね。最低限、SSLは使うとしても、ローカルで入力される際に盗聴されたら元も子もないし。。そのためにワンタイムパスワード発行するのも煩…

プライバシーポリシー免責事項