phpからmysqlにデータベースをインポート

phpからmysqlにデータベースをインポートする方法です
大量のデータをINSERTする時にオススメです

サーバーはvalue-serverです

ファイル仕様
タブ区切り、改行は\n
にします。ファイル形式はcvsではなく、tvsと言います。
文字コードはもちろんutf-8。
それがデフォルトなので素直に従いましょう。
実際ダブルコーテーションでくくるよりもタブで区切るほうが1文字少ないです。
巨大なファイルになるとバカにできない差になります。

phpからのtvs生成時の例
タブ、改行は必ずダブルコーテーションでくくること。シングルコーテーションでくくるとうまく生きません。

インポートはこういう感じ

これで20万行が数秒でインポートできます。

おまけ:
上記ファイルは
ここ
からDLできます

ローカル環境で複数ドメインを使う方法

ローカル環境に複数ドメインでテストしたい場合、以下の作業を行います。

xamppを使います

example.comでxampp\htdocs\exampleに、
foo.barにアクセスするとxampp\htdocs\fooを表示したいとします。

まずはhostsファイルを書き換えます。
hostsファイルの場所はwindows7だと
C:\Windows\System32\drivers\etc\hosts
にあります。OSが変わると場所が変わる可能性があります。
hostsファイルが無い場合は作成しても構いません。
また、編集は管理者権限でないと編集できないと思います。
メモ帳等を右クリック→管理者権限で実行、で管理者権限で実行できます。

hostsファイルには以下の二行を追加します。内容はexample.comを127.0.0.1に変換、foo.barを127.0.0.2に変換といった感じです。

127.0.0.1 example.com
127.0.0.2 foo.bar

保存したら、OSを再起動します。

次にVirtualHostの設定を行います。
\xampp\apache\conf\extra\httpd-vhosts.conf
に、以下を追加してください。


DocumentRoot “C:/xampp/htdocs/example”


DocumentRoot “C:/xampp/htdocs/foo”

保存したら、apatchを再起動します。

これで
example.comでxampp\htdocs\exampleに、
foo.barにアクセスするとxampp\htdocs\fooを表示出来ると思います。

もとに戻す場合は、hostsをコメントアウトすれば良いです。
# 127.0.0.1 example.com
# 127.0.0.2 foo.bar
VirtualHostの設定はほったらかしにしても大丈夫です。

他にもvirtualhostのdocumentrootを
DocumentRoot “C:/xampp/htdocs”
とすればhtdocs直下のindex.phpなどにアクセスできたりします

また、httpd.confにListen 8080と付け足して

のようにしてポートで分ける方法もあるのですが、ポート番号をつけるのが面倒だったのでこの方法を思いつきました。

chromeで画像ファイルが更新されない理由

以下の手順で確認しました(2015/6/30現在)。

1.chromeで任意のページを開く。
2.ftpなどで画像ファイルなどを更新する。
3.別タブで同じページを開く。

この手順では変更後の画像ファイルは読み込まれません。

これはchromeの仕様によります。
別タブで同じページを開いた時の挙動がやや特殊で、
・webではなく、ローカルファイルを取得
・ステータスコードは200(304ではない)
となるので、開発ツールから見ると、取得できているはずなのに取得できていない、というおかしな現象に遭遇します。

解決策としては、単純にF5でリロードすれば更新されます。
元のタブと新しいタブで比較する癖のある方は、この仕様にハマることがあるでしょう(私です)。

なぜこういう仕様かはわかりません。

WordPress SEO by Yoastでイベントトラッキングが使えない時

「WordPress SEO by Yoast」という有名なプラグインがあります。
簡単な手順でgoogleanalytics用のアクセス解析を提供してくれるwordpress用のプラグインです。

しかし不便な面もあり、「WordPress SEO by Yoast」を入れるとイベントが今までのコードで取得できなくなります。
多くの方は以下のような形で書かれていると思います。
ga(‘send’, ‘event’, ‘button’, ‘click’, ‘nav buttons’, 4);

イベントが取得できない理由は、名前の衝突を避けるため
ga();ではなく__gaTracker();が用意されているためです。

単純な解決方法は
ga(‘send’, ‘event’, ‘button’, ‘click’, ‘nav buttons’, 4);

__gaTracker(‘send’, ‘event’, ‘button’, ‘click’, ‘nav buttons’, 4);
と置き換えることです。
一行、二行ぐらいならこちらのほうが楽に解決できると思います。

問題は大量にある場合ですが、以下のように記述すれば解決します。

自動生成部分とコメントで囲んでる部分はwp_head()からyoastが呼び出される部分と思って下さい。
ga = __gaTracker;
だけでも上手くいく事もありますが、analytics.jsの取得が遅い場合は失敗することがあります。

cssで末尾を省略する時の注意点

はみ出した部分を三点リーダにする技がありますが、インライン要素には効かない事に注意です。

こういう時、

はダメです。
必ずブロック要素に掛けるようにしましょう。

もしくは、display:inline-block;としてもいいかもしれませんね。