タグ

phpに関するmaRkのブックマーク (131)

  • 「Invalid argument supplied for foreach() …」エラーの対処法

    まえがき みなさんphpのforeach文でこんなエラー出たことないですか? Warning: Invalid argument supplied for foreach() in ファイルのパス KoToRiはマジで良くこのエラーだしちゃうんですよね。 その度にGoogleで検索して修正してってのをかれこれ10回くらい繰り返しているので、いい加減記事にして同じ過ちは2度と繰り返さないように対処方法を心に刻みつけたいと思います。 「Invalid argument supplied for foreach() …」エラーの原因 「Invalid argument supplied for foreach() …」エラーの原因は配列の形式ではない変数でforeach文を実行しようとしているからです。 基に返ってforeachの解説を見てみましょう。 foreach は、配列を反復処理するた

    「Invalid argument supplied for foreach() …」エラーの対処法
    maRk
    maRk 2017/11/01
  • 私の正規表現におけるポリシー - Qiita

    echo '[a]\[b]'; # => [a]\[b] echo '[a]\\[b]'; # => [a]\[b] echo '[a]\\\[b]'; # => [a]\\[b] echo '[a]\\\\[b]'; # => [a]\\[b] echo '\\'; # => \ echo '\'; # パースエラー 慣れないうちは省略せずに全てエスケープすることをおすすめします。ちなみにこれはPHPに限っての挙動であり、 C や Java ではこのような挙動にはならず、 必ずエスケープしなければなりません 。 ダブルクオート内で処理されるシーケンス 一部マニュアルに記載がないものもあります。 記述 実際の表示 意味 備考

    私の正規表現におけるポリシー - Qiita
    maRk
    maRk 2016/12/23
  • 記事閲覧 - PHP7上でphpMyAdminが使えません

    お世話になり、ありがとうございます。 私は、以前からWordPressを使用しており、PHP5.6で運用していた時はデータベースのエクスポートやインポート等でphpMyAdminを使用していました。 ところが、PHP7の導入を機にバージョンをPHP7に変えたところ、WordPressそのものの使用は問題ないのですが、phpMyAdminのログオン画面でエラー(非推奨記述によるエラー)が発生し、phpMyAdmin自体のログオンは可能ですが、その後の操作をしようとすると、エラーコード200が発生してデータベースの取り扱いが出来ません。 何が原因で発生しているのでしょうか。どのように対策すべきなのでしょうか。

    maRk
    maRk 2016/08/28
    PHP7に切り替えしようと思ったのだが、 がっかりんこ (´・ω・`)
  • PHP: 下位互換性のない変更点 - Manual

    エラーや例外の取り扱いの変更 fatal error や recoverable fatal error の多くが、PHP 7 では例外に変換されるようになりました。 これらの例外は Error クラスを継承したもので、 このクラスは Throwable インターフェイスを実装しています。 この新しいインターフェイスを、すべての例外が実装しています。 エラーではなく例外がスローされるようになるということは、自作のエラーハンドラは呼び出されなくなるということです (Error 例外をキャッチしなかった場合は、fatal エラーが発生します)。 PHP 7 におけるエラーハンドリングの詳細な説明は PHP 7 のエラー を参照ください。 この移行ガイドでは、下位互換性のない変更点を列挙するだけにとどめます。 set_exception_handler() が常に Exception オブジェク

    PHP: 下位互換性のない変更点 - Manual
    maRk
    maRk 2016/08/28
  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
    maRk
    maRk 2016/07/03
  • PHPで高速オシャレな配列操作を求めて - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHPで高速オシャレな配列操作を求めて - Qiita
    maRk
    maRk 2016/06/20
  • phpのタイムアウトに関して at softelメモ

    問題 phpって30秒(max_execution_time)経つとタイムアウトしてfatal error で終了するんですよね? 答え 純粋にスクリプト実行時間でタイムアウトするらしい。 実行開始からの経過時間ではなく。 system()、sleep()、ストリーム操作、SQL実行中など、スクリプトが何もしないで待ちになる時間は含まない。 だから、データベース側が遅くて…とかどこかのWebAPIのレスポンスが遅くて… という場合は、タイムアウトにならない。 ↓これを実行すると、1秒ではなく、100秒きちんと実行して、エラーなく終了する。 set_time_limit(1); for ($i = 0; $i < 100; ++$i) { sleep(1); echo $i . '|'; } ループ中のsleep(1)はタイムアウトの勘定に入らない。 sleep(1)以外の時間(= echo

    phpのタイムアウトに関して at softelメモ
    maRk
    maRk 2016/05/01
  • 「ケータイキット for Movable Type」のOSコマンドインジェクションの修正 | 水無月ばけらのえび日記

    更新: 2016年4月27日11時5分頃 Movable Typeのプラグイン「ケータイキット for Movable Type」にOSコマンドインジェクションの脆弱性があったという話が出ており、J-WAVEの64万件の個人情報流出はこれが原因だったとされています。 J-WAVEでも64万件の個人情報流出の可能性、原因ソフトの利用者は至急パッチ適用を (itpro.nikkeibp.co.jp)「ケータイキット for Movable Type」にOSコマンドインジェクションの脆弱性、利用者は修正バージョンへアップデートを、すでにJ-WAVEへの攻撃で悪用 (internet.watch.impress.co.jp)ケータイキット for Movable Type の脆弱性についてまとめてみた (d.hatena.ne.jp)配布元のアイデアマンズからは、4月22日にまず「緊急パッチファイ

    maRk
    maRk 2016/04/30
  • 【PHP】配列から指定したエントリの数のバリューをランダムに抽出する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【PHP】配列から指定したエントリの数のバリューをランダムに抽出する - Qiita
    maRk
    maRk 2016/04/29
  • 「PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上

    PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上 PHPの公式サイトでは、PHP 5.6.xからPHP 7.0へ移行するためのガイド「Migrating from PHP 5.6.x to PHP 7.0.x」も公開されています。 開発者であるRasmus Lerdorf氏は10月に来日し、「PHPカンファレンス2015」で講演。PHP 7ではPHP 5との互換性を維持しつつ、2倍以上の性能向上とメモリ使用量の低減など、大きな改善が実現されことを示していました。「実際に世界中で使われているPHPアプリケーションの性能が2倍になるのが主な特長です」(Rasmus Lerdorf氏。10月に開催された「PHPカンファレンス2015」にて)。 さらにLerdorf氏は次のようにPHPにはさらに高速化の余地があると説明しています。 「

    「PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上
    maRk
    maRk 2015/12/04
  • PHPにおける変数・関数のコーディング規約、及び扱い方を考える - Qiita

    htmlspecialchars(); // 単語の間に区切りがない str_split(); // 単語の間に区切りがある 上記はいずれも標準関数ですが、決定的な違いがあります。 それは、 単語の間を アンダースコア( _ )で区切っているかどうかです。 我々は、この統一感のなさを真似するべきではないでしょう。 単語の区切りは、しっかりとルールに則って付けるべきです。 我々は、 単語間の区切りをどうやって表現するかを取り決め、それに沿ってコーディングする事が必要です。 キャメルケース・スネークケース・パスカルケース 単語の区切りを表現する方法として、代表的な3パターンを挙げます。 キャメルケース (camel case) 例 : htmlSpecialChars 複合語をひと綴りで表現し、次の単語の始まりを大文字で表す表現法です。 スネークケース(snake case) 例 : html

    PHPにおける変数・関数のコーディング規約、及び扱い方を考える - Qiita
    maRk
    maRk 2015/07/27
  • PHP: rawurlencode - Manual

    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

    PHP: rawurlencode - Manual
    maRk
    maRk 2015/06/06
  • PHPで日付時刻の処理を書くなら Carbon がおすすめ

    どうも、筋トレにハマっているたきゃはしです。 日はPHPにおける日付時刻のライブラリについて書いていきたいと思います。 突然ですが、日付や時刻が絡む処理って意外とやっかいだと思いませんか?おそらく皆さんもいくつか思い当たるフシがあるかと思いますが、そんなやっかい事も Carbon(カーボン)を使えば解消できるかもしれません! Carbon - A simple PHP API extension for DateTime. Carbon とはPHPのDateTimeクラスを継承して拡張された日時操作ライブラリです。 「Carbonってどうなの?流行ってるの?」という方向けに予め補足致します。 Carbonはすでに人気のフレームワークに統合されていたり、GitHubで☆3000に迫る評価もありますのでDateTimeライブラリとしてデファクトになるんじゃないかと予想できます。 ではインスト

    PHPで日付時刻の処理を書くなら Carbon がおすすめ
    maRk
    maRk 2015/05/14
  • サービス終了のお知らせ

    maRk
    maRk 2015/02/10
  • 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか

    この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 稿では、当時のPHPの状況を振り返る手段として、この後PHPセキュリティ機能がどのように変化

    maRk
    maRk 2014/12/22
  • ヨーダ記法を応援します - がるの健忘録

    軽く各方面とバトりそうなネタなれど。 まず。 ヨーダ記法(ないしNTT記法…って、うちのまわりではいってたんだけど、ググるとあんまりでてこない)ですが。 これは「if等の比較演算において、左辺に定数、右辺に変数を置く」記法です。 とりあえず幾つかネットで拾ってみる。 http://uchidak.net/yoda-notation このようにヨーダ記法とは、予期しない代入を防ぐために産み出された安全側へ倒すための書き方です。 しかしながら、現在はコンパイラがよしなにしてくれるため、あえてヨーダ記法で可読性を失うような書き方をすることをリーダブルコードでは推奨していませんでした。 http://qiita.com/moriturus/items/723eb17873381f94baf8 確かに、ヨーダ記法(1 == hogeのように記述する)は、発見しづらいミスを防ぐのに有用かもしれないが、

    ヨーダ記法を応援します - がるの健忘録
    maRk
    maRk 2014/12/22
  • JavaScript の a || b || c と PHP の $a || $b || $c は動作が異なる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JavaScript の a || b || c と PHP の $a || $b || $c は動作が異なる - Qiita
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
    maRk
    maRk 2014/08/14
  • www.php.netのキーボードショートカット一覧 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    www.php.netのキーボードショートカット一覧 - Qiita
    maRk
    maRk 2014/06/18
  • PHPをインタラクティブに実行する PsySH

    PHPの関数やコード例の動作確認をどのように行っていますか? 最も基的な方法は変数や関数の戻り値を逐次、echoで出力する方法でしょう。 しかしこの方法では何度もコード編集と実行を繰り返す必要があり非効率です。デバッガやIDEの使用も解決策の1つですが、大げさすぎたりパフォーマンスの問題がある時もあります。 一方でRubyの世界を見てみるとirbやpryを使ってコンソール上でリアルタイムにコードを試す姿が一般的です。 今回はPHPで対話的なデバッグやコード実行を行えるPshSHを紹介します。 PsySH 従来の手法 php -a PHPには標準で対話シェルモードがPHP5.1以降から搭載されています。 しかしこの機能を利用するには--with-readline付きでPHPがコンパイルされている必要があります。 readlineが利用できない場合はインタラクティブシェルの変わりにインタラク

    PHPをインタラクティブに実行する PsySH
    maRk
    maRk 2014/06/06