fが返りました。このfはなんでしょう? 実は$hogeに格納された文字列の1文字目です。 つまり、$hoge["fuga"]の"fuga"が数値にキャストされ0になり、$hoge[0]が評価され文字列の1文字目が取り出されたわけです。で、最初の話に戻ってisset($hoge["fuga"])がtrueになったわけです。PHPの豆腐のような柔軟性にはほとほと困ったものです。 ですが、流石にPHPの中の人も「流石にねーわ」と思ったのか、PHP5.4.0からは挙動が変わりました。
[PHP] 存在しない配列のキーにアクセスしたときの挙動まとめPHP5で、配列ではない型の変数や、 配列でも存在しない識別子に対して $array["key"] の アクセスを行ったときの挙動のまとめです(from それなりブログ) あんな型やこんな型に対して添字アクセスを試みた結果がまとまってます。 string型の場合は、識別子をinteger型にキャストした上での各文字へのアクセスとなること 非array型に対して $array["key"] とやっても何もエラーが出ないくせに、array型で存在しない識別子にアクセスするとNotice Errorを吐くこと クラスインスタンスに対してのみ、Fatal Error を吐くこと 1番目と3番目は別にどうでもいいんだが、2番目に関して、自分は結構イライラさせられている。 <?php $data = get_something(); if
所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので本番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数
今日は、前々から準備していたセキュリティ勉強会が台風でポシャってしまった。あーあ、せっかく楽しみにしてたのに……最近ツイてないなぁ……。 で、なんだか不完全燃焼気味なので、ちょっと記事を書いてみる。前にちこっと見た、phpMyAdminへのアタック観察記というネタ。 phpMyAdminとは何か まぁ何を今さらという感じだけれども、phpMyAdminとはPHPで書かれたMySQLの管理ツール。GUIで分かりやすくデータベースが操作できるため初心者にとても人気のツールなのだが、残念ながら過去に大量の脆弱性が発見された(いや、現在形で「され続けている」と言った方が良いか)ため、日々世界中から不正アクセスの猛威にさらされている。 というわけで、Webサーバを立てていると、phpMyAdminが入っていないかとかスキャンしにくるアクセスがとても多い。この記事ではその辺のアタックを観察してみる。
iPhoneからWebでHTMLのフォームから写真をアップロードしてもらったときなど、画像が回転して表示されてしまう場合があるようです。原因はExifのOrientationの値が「1」以外になっていること。 画像の向きの情報がExifに埋め込まれているけれど、ファイル自体は回転していない(=撮影した向きになっていない)ために表示がおかしくなるのです。 ブラウザーの仕様によりますが、ExifのOrientationの値を無視して、ファイルを表示しようとすると撮影した向きとは合わない表示になってしまうことになります。 解決するには、アップロードされたときにExifのOrientationを見て、サーバー側で画像を回転させてしまうのがオススメ。回転して、ExifのOrientationの値を正しい向きに補正します。 以下、PHPのimagick拡張を使った場合の例。 <?php $imagic
4月22日追記。細かい表現、データの追記、リンクを修正しました。Laravel の作者による Laravel 4 とSymfony 2 の比較はこちらの記事をご覧ください。 2013年においてもっとも注目すべき PHP フレームワークとして Laravel を挙げる。 執筆時点で Laravel の知識はほとんどないが、新しいプロジェクトでありながら、英語圏においてさまざまなチュートリアルが書かれおり、熱烈なファンを獲得したと見られる。ほかの PHP フレームワークの開発プロジェクトが抱えている将来の課題を考慮すると、Laravel を学ぶ価値はあると考えられる。 4月21日の時点で GitHub のスターの数は3971であり、2000年代後半からプロジェクトが存在していた CakePHP(3741) および Zend Framwork 2 (3905)を超え、PHP フレームワークとして
2013年3月13日 同じ内容の記事は山ほどありますが、今回珍しく使ったのでメモメモ wordpress3.x以降からマルチサイト対応になったようで、ひとつwordpressをサーバにインストールすると、それだけで複数のブログを管理できるようになったらしいです。 今までは、基本的にはひとつのwordpress用ディレクトリに1つのブログだったから、物理的にひとつのサーバで複数のwordpressを動かしたいときは、複数 wordpressをインストールする必要がありました。(僕のサーバも随分前に構築したので、その構成です。) まだ実装されたばかりの機能だけあって、ちょっと不具合やら機能不足もあるようなんですが、提供された開発環境がマルチサイト構成で、それを利用してほしい、ということだったので対応しました。(納品物自体はまだ制作途中だけどw) 以下、ざっくりした要求 マルチサイト含めて全部で
WPで関数が用意されていそうですけど、PHPの定数で取得できますよ。 <?php basename(__FILE__); ?> ただ、header.php 内で実行すると header.php、loop-single.php 内で実行すると loop-single.php が返り値となります。 一応自己解決しました。 functions.phpかプラグインで作る予定だったので現在実行中のファイル名の取得だと不都合がありました。 とりあえずテンプレート階層で利用している関数を参考に現在利用しているテンプレートファイル名を返す関数を作りました。 function get_use_templatefile(){ if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) : $template = false; if ( is_404() && $templ
2010年の年末に、「カイ士伝」のさくらVPSへの引っ越しを手伝ったわけですが、その後も元気にサーバは動き続けているようです。 引っ越し当初は、Web サーバとして lighttpd を導入してたんですけど、僕の個人的な好みがかわって、途中で Nginx に切り替えました。 特に大きなトラブルもなくサクサクと動いてたようですが、昨日突然の Yahoo!砲で、平常時の数倍のアクセスがあったようです。 Yahoo!砲くらったけど月額980円のさくらVPSとチューニングでサーバー落とさず乗り切ったよ – カイ士伝 ただ、アクセスが大量にあった初日(1記事に5.5万PV)にもサーバ負荷が高くなってるとか気付かずに、余波でちょっと多くなってた翌日(1記事に1.3万PV)に気づいたというくらいの平常運転っぷり。 Nginx 痺れますわー。 僕は、カイ士伝の WordPress ダッシュボードにログイン
WordPressのユーザーコミュニティである『WordBench』(2018年9月23日をもって終了 WordPress Meetup に移行しています)にて「ループ」をテーマにした約4時間のハンズオンセミナーを行いました。 4時間、ループのことしかやらない勉強会はWordBenchでも異色だと思うのですが、参加された方の感想はおおむね好評だったようです。公式ドキュメントのCodex日本語版の「The Loop」の項が未翻訳というのも理由の一つかもしれません。 [2017.3.11追記 日本語訳されてました!] さて、WordPressカスタマイズのキモともいえるこのループ。私もかつて解説本から学んだとおり、 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- 記事があるときの表示内容をここに書
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
先日ふぁぼりすと解析というWebサービスを公開しました。これはTwitterのユーザーIDを入力すると、その人を誰がどれぐらいの割合でふぁぼっているかを表示するものです。 これはふぁぼったーからデータを取得しているのですが、調べた感じ、ふぁぼったーはAPIを公開していなかったのでHTMLの出力を自力でクロール、パースしました。ここではその時に使ったPHPスクリプトを公開します。 パースにはPHP Simple DOM Parserを用いました。これがすごく便利です。 $idにTwitterIDを与えると、$favottersの連想配列に、ユーザー名⇒ふぁぼった回数 という形で格納されます。 crawlFavotter.php <?php include("simple_html_dom.php") $id= // TwitterID $crawledIds=Array(); $favott
PHP 5.4 – Begin your love affair with traits View more presentations from Graham Weldon CakePHPの開発者の一人であるGraham Weldonさんが公開したPHP5.4についてのスライドがまとまっていてとてもわかりやすいです。”begin your love affair with traits”(traitsと恋に落ちよう!)と題されているとおりPHP5.4といえばtraitsなわけですが簡潔なサンプルが付いているのでまだtraitsわからないよという人は必ず目を通しておきましょう。 まだまだPHPの中心は5.2といったところのようです。(CakePHP2はボリュームゾーンである5.2を対象にしているわけですね) これがtraitsを用いたログ処理の実装の例ですね。 スライドには他にも様々
今回は、インターネット上でどんなコンピュータ言語が話題になっているかを表すデータを見ながら、今後のプログラミング言語の流行を予測してみる(編集部) P言語の人気はいつまで続くのか Linuxなどの、オープンソースソフトウェアを利用して開発したWebアプリケーションが一般的なものになってしばらくたつ。Webアプリケーション開発で多くの人が使うソフトウェアの組み合わせの略称である「LAMP」という言葉も有名になった。OSであるLinuxと、WebサーバであるApache HTTP Server(以降、Apache)、リレーショナルデーターベース管理システム(RDBMS)MySQL、そしてサーバサイドで動作するプログラム開発に使用するプログラミング言語であるP言語(PHP、Perl、Python)の頭文字を取った言葉だ。日本ではP言語の位置にRubyが入ることも多い。 しかしコンピュータやネット
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く