ど素人から毛を生やす。<延>

PHP

FTPに同名ファイルが無ければ新規作成、あれば追記

どもです。
PHPでFTPに接続し、出力ファイルと同名ファイルが無ければ新規作成、あれば追記がやりたかった。

ここまでは問題ないです。

問題はここから。
上書きだけなら、... 全文を読む »

「PORT IP is not same as」されたらパッシブモードにしてみる。

どもです。

某所のFTPにCSVをアップするプログラムを移植していたところ、実は対象がFTPSだったことが判明。
急いで直します。

$conn_id =
... 全文を読む »

array_search()やin_array()する前には、ちゃんとarray_map('trim', $array)するんだぞ!ってメモ。

どもです。
しょーもないことでハマったので備忘。

外部から貰ったCSVを取り込むのに、その項目が何列目にあるかをarray_search()で照合しようとしたら、特定の項目でfalse食らってしまったわけですね。

array_search()でやらかし易いミスといえば、

・第三引数にtrueを設定しないことで、文字列型と数値型の比較になってしまう。... 全文を読む »

file_get_contents()はhttpでないと持ち帰るものが変わってしまう?

どもです。
file_get_contents()に関する備忘録。

PDFを生成し、添付したメールを送信。そのためには作成したPDFをいちど取得しなければなりません。
しかし使用しているPDF作成ライブラリの仕様として、header()を変更してechoしてしまいます。
このため、include()でなくfile_get_contents()を使って生成データを「取得」することが求められます。... 全文を読む »

PHPでファイルをダウンロードさせようとしたら空の実行ファイルがダウンロードされた事案のたぶんレアケース。

どもです。

DBからcsvをダウンロードするphpを移植したら、空の(実行ファイル名).phpがダウンロードされてしまう事象が起きました。
開発や検証中にはそのような事例は一度も無かったのですが、はて。

この原因ですが、端的に言えば何も出力できないのに出力しようとした... 全文を読む »

MySQLから取り出した「日付データがあるとき」の条件分岐を、できるだけ最短の記述で行いたい。

どもです。

PHPで日付データがあるとき、の条件分岐をしたい。

このとき、厳密な日付フォーマットチェックを行いたいのであれば、DateTimeクラスを用いるのが妥当です。
参考サイト:
[Qitta]【PHP】DateTimeクラスでcheckdate()より汎用性のある日付チェックを行う... 全文を読む »

MySQLをPHPでSELECTしたとき、resource型で保持して使用するときにwhileするのと一度配列にぶち込んでforeachするのとで、どれくらい負荷と速度に差があるのか調べてみた。

どもです。

つい昨日、こんなことを呟きました。

膨大な行のMySQLをPHPでSELECTしたとき、resource型で保持して使用するときにwhileするのと一度配列にぶち込んでforeachするのとで、どれくらい負荷と速度に差があるのか知りたい。
いや前者の方が良いのはわかるんだけど!可能なら後者でいきたいんだ!

ということで、調べます。... 全文を読む »

FTPS中のファイルを更新日時順で取得したかった話。

どもです。

FTPS上にアップされたCSVをDBに落とすプログラムを作成していたのですが、このときにファイル名は問わないという縛りがあり、では何を基準に複数ファイルがあったときの処理順を定めるべきか。

普通に考えたらファイルの更新日時かアップロード日時ですな。
ファイル更新日時の昇順といたしましょう。

さて、どうすればそれが適うのか。... 全文を読む »

PHP4サーバーにXML/ParserをインストールしたらFatal errorになった話

どもです。

PHP4のサーバーでXMLの読み取りを行いたく、【Pear】Package Information: XML_Serializer... 全文を読む »

一定文字数、一定バイト数で文字列を分割する的なアレ。

どもです。
一続きの文字列を、一定の文字数またはバイト数で分割する備忘録。

両方とも$arrayに分割された文字列が入ります。

原理としては、まぁ見りゃわかるやつですが、

[i]
... 全文を読む »

str_replace()にNULLを突っ込むと…

どもです。

仕事でちょっとヘマやらかしまして、ちょっと凹んでます。
まぁ失敗談は置いておいて、その過程で見つけてちょっと驚いたstr_replace()の話。

str_replace()にNULLを入れるとどうなるか、です。

なんと、ひとつもエラーにならない。文字列型を返してくれる。... 全文を読む »

wkhtmltopdfで明朝体フォントを指定したら、全く違うフォントで出力された話。

どもです。

ウェブサイト上でPDFファイルを作成する手段はいくつかありますが、今回は「wkhtmltopdf」について。

こいつが既に導入されているサイトで、新たなPDF生成システムを作ることに。
サンプルが明朝体だったので、いつものノリで... 全文を読む »

Eclipseで勝手に変数の宣言元に跳ぶのをどうにかしたい。

どもです。
Eclipseは開発のお供ですが、機能が多すぎるのも玉に瑕です。

この頃気になっていたのが、ソースのコピペをしようとした途端、変数の宣言元に意図せずジャンプしてしまう頻度が高いこと。... 全文を読む »

htmlspecialcharsを使用するときは「重ねがけ」に要注意

どもです。

とある一覧を表示するとき、

まぁ内容は何でも良いですが、とにかくtext型の値を全て「htmlspecialchars()」で出力したとします。... 全文を読む »

Utf-8では全角文字が3byteだけど、2byte扱いで切り取りたい。

どもです。

CSV出力したり、他サイトとデータのやり取りをしたいとき、
Utf-8では全角文字が3byteですが、2byte扱いで切り取りたい場合があります。

そういうときの解決法。

SJISに一度変換してから、SJISとしてmb_strcutを使用するわけです。... 全文を読む »

[php]switch->caseの中で正規表現してみた

どもです。

例えば様々な項目の中に「url1」から「url5」までがあるとして、
これをswitchで処理したい場合があったとします。

このとき、「urlX」は同じ処理にしたい。
その場合、こういう書き方になると思います。... 全文を読む »

PHPの配列を任意の位置で分割するにはarray_splice()を使えば良かったのか

どもです。

クラス直下の連想配列に、大量の連番な配列を加えなければならなくなり、
そんなモン手書きでやってられっかと配列の任意の場所に配列を加える方法を探しました。

ありました。
[Qiita]PHPで連想配列の任意の位置に要素を挿入・削除する... 全文を読む »

PHPの開発エディタは必ず空白が可視化できるものを使おうと誓った話。

どもです。
今回はちょっと吃驚したトラブルの話。

本来、やりたかったことはとてーもシンプル。

実際は$telに値を入れてから色々処理して最終的な$storage[]に入れるわけですが。

重要なのはループの中で、複数回、処理用の変数$telに新しい値を入れて使用していること。... 全文を読む »

phpで改行を置換したいが「\n」と「\r\n」の違いに首を傾げた話。

どもです。
phpで改行を置換することになり、ちょっと悩んだのでメモ。

置換等を行う際、改行処理は制御文字を用いて行う必要があります。

が、

どうにも改行用の制御文字には「\n」と「\r\n」の2種類があるらしい。... 全文を読む »

phpにおける正規表現の超基本を学ぶ。

どもです。

この頃、正規表現を扱うことが増えたので、ちょっとど素人のままではいられなくなってきた。
ので、まじめに勉強してみようと思った次第です。

正規表現の超基本ルール

( ... 全文を読む »