環境 PHP 7.2.0 Guzzle 6.3 HTTPステータスが4xx、5xxの場合に例外を出さないようにする 例外を抑制するためには、リクエストオプションに「http_errors => false」を指定します。 デフォルトはtrueのため、例えば404エラーの場合に例外が発生します。 ただし、ホストに接続できない場合はこれに関係なくConnectExceptionが発生します。 $client = new GuzzleHttp\Client(); $res = $client->request("GET", "https://qiita.com/f/o/o/tnm18", array( "http_errors" => false, )); var_dump($res->getStatusCode()); // => int(404) Cookieを使用する Cookieはデフォ
Laravelは非常に使いやすいフレームワークですが、いざ仕事でアプリケーションを実装していくと、Laravelのお作法に従うことが推奨されるケースが多く、機能も膨大なので、当然ですが分からない事が次々出てきます。 この記事では備忘録も兼ね、逆引きTips的にLaravelでの各種実装方法を紹介していきます。 ※記事執筆時に使っているLaravelのバージョンは5.7です。 紹介している項目 Storage View Controller Route Database (Eloquent ORM) Validation その他 ※加筆更新修正中 Storage ファイルの存在をチェックしたい try/catchを使ってファイルが存在するかチェックします。 try { $file = Storage::get('images/hoge.png'); return $file; } catch
forms 悩み事 Bladeテンプレートでチェックボックスを作成したい 解決方法 Form::checkbox()メソッドを利用します 第一引数でフィールド名を必ず指定しなければなりません {{Form::checkbox('agree')}} これは下記の様に出力されます <input name="agree" type="checkbox" value="1"> valueを第二引数で指定する事が出来ます {{Form::checkbox('agree', 'yes')}} チェックされた場合に、vakueは"yes"が利用されます <input name="agree" type="checkbox" value="yes"> デフォルトでチェックされた状態にする場合は、第三引数にtrueを指定します {{Form::checkbox('agree', 1, true)}} che
初投稿です。まだまだ、駆け出しのエンジニアですが、仕事でlaravelを使った開発をしています。 対象のバージョン(動作確認済み)は5.1です。 DBは、Postgresql9.4.4を使用しています。 また説明では、Eloquent ORMは使用しませんが、使用しても動作します。 laravelを使い始めて2年目になりますが、当初困ったのが、サブクエリはどう書くのかということ。 ドキュメントを見ても、サブクエリについて触れられているのはexsist句の時だけでした。 そこで、where句 や where in句 でも使えるよ、という事をご紹介します。 データを用意 最近ハマったアニメ「干物妹!うまるちゃん」を例に、 妹Sが、カラオケに行ったという程で、こんなデータを用意してみました。 妹Sの情報が入ってるテーブル
PHPのjson_decodeは値が " (ダブルコーテーションで)囲まれていないと null になるっぽい。 json_decode() でnull になるJSONのパターン 1. " で囲われていない値がある json = {1: "星宮いちご"} <?php json_decode( json ); // => NULL 2. 値が ' (シングルコーテーション)で囲まれている json = {"1": '<b class="idol">星宮いちご</b>'} <?php json_decode( json ); // => NULL ` ←コレもダメ json = {"1": `星宮いちご`} <?php json_decode( json ); // => NULL 3. 行末に , がある json = {"1": "星宮いちご",} <?php json_decode( js
<!-- css --> <link rel="stylesheet" href="{{ asset('/css/bootstrap.min.css') }}"> <!-- js --> <script src="{{ asset('/js/jquery-3.1.1.min.js') }}"></script> <!-- img --> <img alt="ロゴ" src="{{ asset('/img/logo.png') }}"> セキュアな通信しかしないよって場合はsecure_assetを使う HTTPSオンリーな本番環境の場合は、asset()の代わりにsecure_assset()を使います。 で、一つここに問題が。ローカルの開発環境ではSSLでつなげないので、環境ごとに読み込み方を変えます。 @if(app('env')=='local') <link rel="styles
はじめに CentOS6系の標準リポジトリのPHPバージョンは5.3、 CentOS7系の標準リポジトリのPHPバージョンは5.4です。 それ以外のバージョンを使用したい場合は、リポジトリを追加してのインストール作業が必要になります。 今回、PHP5.6, PHP7.0, PHP7.1のインストール手順について記載します。 (※2017-07-23時点の情報です) Yumリポジトリ追加 EPELとRemiリポジトリを追加します。 EPELリポジトリ [CentOS6系] yum install epel-release または rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm [CentOS7系] yum install epel-release または rpm -Uvh http
Eloquentのcount()の関数を使用して、DBのレコード数を数える作業はよく起こります。 例えば、前回の画像の件では、商品productのレコード1に対して商品画像product_imageレコードが複数あるという、1対多の関係。そこでは、商品を削除するときに商品画像がないかをチェックする必要あります。画像のレコードがあるなら、削除を拒否あるいはユーザーに削除してよいか尋ねるということになります。 この場合は、商品画像があるかないかは、count()するのが一番。しかし、Eloquentではいろいろなカウントのコードの仕方があります。 今回は、これを説明するために、コントローラに特別にメソッドを作成してみました。 namespace App\Http\Controllers\User; use App\Http\Controllers\Controller; use App\Pro
PHPのerror_log()関数でApacheのエラーログ等に日本語のメッセージを吐き出すと \xe8\xaa\x8d\xe8\xa8\xbc\xe3\x81\xab\xe5\xa4\xb1\xe6\x95\x97\xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f\xe3\x80\x82といった感じに文字化けして出てくる時がある。 まぁ厳密には文字化けしている訳ではなくて、セキュリティの観点から適切にエスケープ処理してくれているだけなんだけど、デバッグ中の身としては余計なお世話だったりする。 (^^; Apacheの環境設定をいじるとエスケープされなくなるようだけど、お客さんのとこの環境を勝手に変える訳に行かなかったり、他の表示に影響が出る場合があるのであまり環境設定をいじりたくない。 とりあえずプログラムでエスケープされた文字を復元したりし
PHPには平均値(mean)や中央値(median)を求める関数はないようです。 配列の平均値(相加平均)を返す関数は単純ですが、以下のように求めることができます。 function average($list){ $sum = 0; foreach($list as $a){ $sum += $a; } return($sum/count($list)); } 同様に、配列の中央値を返す関数は以下のようになります。 中央値は偶数個と奇数個で分かれますので場合分けが必要です。(添え字が0から始まっていることに注意。) function median($list){ sort($list); if (count($list) % 2 == 0){ return (($list[(count($list)/2)-1]+$list[((count($list)/2))])/2); }else{
PHPのDateTime型は比較演算子がオーバーロードされており、普通に比較することができる。未来の日時の方が"大きい"という扱いがされる。 <?php $date1 = new DateTime('2015-01-01'); $date2 = new DateTime('2015-01-02'); $date3 = new DateTime('2015-01-02'); var_dump($date1 < $date2); // true var_dump($date2 <= $date3); // true var_dump($date1 == $date2); // false var_dump($date2 == $date3); // true var_dump($date2 === $date3); // false PHPのオブジェクトは[]などを除けば演算子オーバーロードは
PHP: POST リクエストで JSON を投稿するPHP: curl で PUT リクエストを行うPHP: curl で PATCH リクエストを行う stackoverflow の回答によると POST はリソースの修正と更新に使われるのに対して、PUT はリソースの作成および書き換えに使われる。PUT は完全にリソースを書き換える場合に使うという説明もある・PATCH リクエストも合わせて書くと JSON Patch の仕様作成者のブログ記事によれば PATCH リクエストはリソースの一部の更新に特化したものである。 PHP のコードは最近 PHP のオライリ本を出版した Lorna さんのブログ記事を少し修正したもの。データについて http_build_query 関数を適用する。PHP 5.4.0 で PHP_QUERY_RFC3986 を指定できるようになった。 $url
明示的 意味 แพลตฟอร์มการเรียนรู้และพัฒนาทักษะด้วยเทคโนโลยี https://suin.io เป็นแพลตฟอร์มที่ให้คุณเรียนรู้และพัฒนาทักษะทางเทคโนโลยีอย่างสะดวกสบาย เรามุ่งมั่นในการให้ความรู้และประสบการณ์ที่มีคุณค่าในการพัฒนาตนเอง pascalcase
一手間必要なPHPでのSimpleXML関数のパース処理 今回はPHPによるXMLデータのパース処理で気になったので、 それについての小ネタです。 まずは基本 PHP5でXMLデータを簡単にオブジェクト化してくれる 「SimpleXML」関数を利用します。 例えば simplexml_load_file() simplexml_load_string() 関数自体の細かい説明は省きますが、「simplexml_load_file()」は XMLファイルからXMLデータを読みだしてオブジェクト化し、 「simplexml_load_string()」は形成されたXML文字列をオブジェクト化する なんとも便利な関数です。 こんな感じに $xml = simplexml_load_file('xml.xml'); print($xml); 結果 SimpleXMLElement Object (
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く