タグ

phpに関するkyompiのブックマーク (156)

  • PHPでMySQLに接続する方法【さくらのレンタルサーバ利用】|Koushi Kagawa

    珍しくフレームワークもCMSも利用せず、PHPでサイト構築依頼がありました。 ちょっと迷ったのですが、『そういえばフレームワークやCMSを利用しないサイト構築はやったことなかったな、せっかくだからこの機会にやってみるか』と思い受けることにしました。 何事も基礎が大事ですので、改めてPHPの学習をしてみようと思います。 さくらレンタルサーバの設定今回はさくらレンタルサーバ、プランは「スタンダード」を利用します。 サーバの契約を行ったら、管理画面にログインします。 (お!管理画面が新しくなっている!) データベース作成次にデータベースを作成します。 管理画面より「Webサイト/データ」→「データベース」をクリックします。 「新規追加」をクリックします。 下記設定します ・データベースバージョン ・データベース名 ・データベース文字コード また、「同意する」にチェックを入れて「作成する」をクリッ

    PHPでMySQLに接続する方法【さくらのレンタルサーバ利用】|Koushi Kagawa
  • PHPで簡単なWebAPIを実装してみる【初心者向け】|kazz

    そろそろ成人式のkazz(@kzkzkazz)です。 WebAPIはご存知ですか? そもそもWebのつかないただのAPI(Application Programming Interface)の説明からしますと、名前の通りプログラム内で利用するアプリケーションのインターフェースです。JavaScriptのDOM APIもDOMをJavaScriptで扱うインターフェースですので、その一部です。 特にWebAPIは、HTTPを利用したAPIを指します。HTTPとは、おなじみのwww.hoge.com にPOSTやらGETやらでやりとりするやつです。 WebAPIは、様々な用途に利用されます。スマホアプリやSPAのクライアントとサーバーでやりとする際もそうですし、サーバー間で他サービスとの連携でも使われます。 このサービス連携というのは、例えば、サーバーの処理で天気の情報を扱いたいときは、「Op

    PHPで簡単なWebAPIを実装してみる【初心者向け】|kazz
    kyompi
    kyompi 2021/03/29
  • PHPでセッションを完全に破棄する方法 - プログラマはサイコロを振らない

    PHPでセッションを破棄する方法について、きちんと解説されたものが見つからなかったので書いておく。 まず、PHPでセッションを破棄する方法自体はPHPのマニュアルの載っている。↓の部分だ。 <?php // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); ?> 問題は、このコードについてまともな説明がされていないことだ。よくわからないままに使っている人も多いように思える。例えば「PHP

    PHPでセッションを完全に破棄する方法 - プログラマはサイコロを振らない
    kyompi
    kyompi 2020/08/26
  • PHP7で宇宙船演算子を使いこなすぞ - Qiita

    まずはPHP7リリースおめでとうございます!!! PHP 7.0.0 Released なんだか記念すべき日にAdvent Calendarを入れてしまって恐縮です。その割にすごい小ネタで書いてしまった…。 ここからPHP7では宇宙船演算子<=>が導入されます。だいたいこういう意味の演算子ですね。 // <=>と同じ意味の関数 function compare($a, $b) { if ($a < $b) { return -1; } elseif ($a > $b) { return 1; } else { return 0; } } compare(1, 2); // -1; 1 <=> 2; // -1; ユースケース的にはusort(), uasort(), uksort()との組み合わせで用いられるので、この機会にPHPにおける配列の並び替えについてまとめてみることにします

    PHP7で宇宙船演算子を使いこなすぞ - Qiita
    kyompi
    kyompi 2020/08/25
  • 二つの多次元配列を比較して、片方にだけ含まれるものを抽出する方法

    kyompi
    kyompi 2020/08/25
  • SplFileObjectのREAD_AHEAD, SKIP_EMPTY, DROP_NEW_LINEはPHPのバージョンによって挙動がバラバラな件 - Qiita

    $file = new SplFileObject($path); $file->setFlags( SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE ); これらのオプションの説明はSplFileObjectの定数のものをそのまま引用する。 SplFileObject::DROP_NEW_LINE 行末の改行を読み飛ばします。 SplFileObject::READ_AHEAD 先読み/巻き戻しで読み出します。 SplFileObject::SKIP_EMPTY ファイルの空行を読み飛ばします。期待通りに動作させるには、READ_AHEAD フラグを有効にしないといけません。 SplFileObject::READ_C

    SplFileObjectのREAD_AHEAD, SKIP_EMPTY, DROP_NEW_LINEはPHPのバージョンによって挙動がバラバラな件 - Qiita
    kyompi
    kyompi 2020/08/24
  • PHP: fgetcsvでもSJISのCSVをUTF-8として《安全》に読む方法(ストリームフィルタ使用) - Qiita

    fgetcsvでShift-JIS文字コードのCSVを読むと、文字列がShift-JISのままの配列が返ってくるため、UTF-8を基的な文字コードに据えたシステムでただ不便というだけにとどまらず、SJISのCSVをfgetcsvで直接読み取るのは「5C問題」のため危険である。 稿では、ストリームフィルタを使ったSJIS CSVの安全な読み込み方法を紹介する。なお、稿で作るストリームフィルタの完成形はGitHubで公開する。 5C問題とは よく見かける次のような実装は5C問題のため、データによっては読めないものが出てくる危険性がある: $fp = fopen('sjis.csv', 'r'); while ($row = fgetcsv($fp) !== false) { // fgetcsvで読み取った後に、文字コードを変換している mb_convert_variables('UTF

    PHP: fgetcsvでもSJISのCSVをUTF-8として《安全》に読む方法(ストリームフィルタ使用) - Qiita
    kyompi
    kyompi 2020/08/20
  • PHP:array_diff, array_intersectで配列の比較を超高速に行う(脱foreach作戦) - Qiita

    PHP:array_diff, array_intersectで配列の比較を超高速に行う(脱foreach作戦)PHP配列高速化 DBCSVファイルからデータを取得する際、配列として取得することはよくある。 例えば、DB上の大量のデータを配列として取得して、手元にある別のデータとの重複の照合を行うこともあるだろう。 ここでは、配列同士の比較をできる限り高速に行うことを主眼に置く。 実行速度は処理に要する時間を計測することで、遅い or 速いを判断する。 【PHP】処理の速度を計測する方法 【PHP公式】microtime — 現在の Unix タイムスタンプをマイクロ秒まで返す 配列の準備 はじめに、10万個の要素を持つ配列を2つ準備する。 $dataには0〜99,999の100,000個の数字 $randomDataには0〜500,000のうちランダムに100,000個の数字 が格納さ

    PHP:array_diff, array_intersectで配列の比較を超高速に行う(脱foreach作戦) - Qiita
    kyompi
    kyompi 2020/08/20
  • PHPでCSVとTSV - Qiita

    $read_file_path = __DIR__.'/read.csv'; $file = new \SplFileObject($read_file_path, 'r'); $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY | \SplFileObject::READ_AHEAD);// 空行無視はSKIP_EMPTYとREAD_AHEADを共に設定する foreach ($file as $row) { var_dump($row); } dd($file);// Laravelの出力用ヘルパ関数 array(3) { [0]=> string(8) "headA" [1]=> string(5) "headB" [2]=> string(5) "headC" } array(3) { [0]

    PHPでCSVとTSV - Qiita
    kyompi
    kyompi 2020/08/03
  • Ideone.com

    /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { // your code goes here } }

    kyompi
    kyompi 2020/07/29
  • 配列の指定した場所に値を追加する | GRAYCODE PHPプログラミング

    array_splice関数を使って、配列の任意の場所に要素を追加する方法について解説します。 この記事のポイント 配列の好きな場所に要素を追加することができる 連想配列に要素を追加する時は配列のキーに一工夫必要 配列の途中に要素を追加する array_splice関数を使うと、配列の任意の場所に要素を追加することができます。 コード例 array_splice( $array, 2, 0, '追加する要素'); パラメータが少し多いですが、前から1つ目のパラメータは要素を追加する配列、2つ目は追加する位置、3つ目は置き換える要素数、4つ目が追加する要素の内容になります。 言葉だけだと分かりづらいため、実際にコードで動作をみていきましょう。 array_splice関数は配列の要素を置き換えるときにも使用するため3つ目のパラメータが必要なこともありますが、今回は置き換えではなく追加のみなの

    配列の指定した場所に値を追加する | GRAYCODE PHPプログラミング
    kyompi
    kyompi 2020/07/28
  • PHPとMySQLの接続方法をいろいろ比較した - Qiita

    PHPの学習をしていた時、PHPとデータベースの色々なDB接続方法を調べたのでそれを纒めました。 かなり古い実装方法も記載してある為、万一この記事を参考にする場合は、非推奨と書かれていない方法で実装することをオススメします。 mysql_connect関数を使う(非推奨) 公式サイトによると、mysql_connectは PHP5.5.0で非推奨になり、PHP 7.0.0で削除されています。 よほど古いサイトの改修などに関わる時以外は使う事はまず無いでしょう。 他にもほとんどのmysql関数が非推奨または削除となっています。 // DBへ接続 $link = mysql_connect('localhost', 'user_name', 'password'); if(!$link){ die("データベースの接続に失敗しました"); } // データベースの選択 $db_selecte

    PHPとMySQLの接続方法をいろいろ比較した - Qiita
    kyompi
    kyompi 2020/07/27
  • 初心者向け。覚えておきたい 「ガード節」という書き方。 - Qiita

    最初に 何においてもそうですが、どのような場合にも当てはまるやり方というものではありません。 ケースによっては逆に読みづらくバグを生みやすくなる場合もあります。 これから紹介するものは、コードを最適化するとき、読みやすくするときの手段の一つとして理解していただければと思います。 ガード節とは 処理の対象外とする条件を、関数やループの先頭に集めて return や continue/break で抜ける方法です。 ネストを減らし正常系の処理がわかりやすくなるメリットがあります。 具体例 まずは悪い例です。 function check($a, $b, $C) { if (is_null($a)) { $result = 0; } else { if (is_null($b)) { $result = 0; } else { if (is_null($c)) { $result = 0; }

    初心者向け。覚えておきたい 「ガード節」という書き方。 - Qiita
    kyompi
    kyompi 2020/07/22
  • 簡単比較!見ただけでわかるPHPコーディング規約 - Qiita

    PHPには、PSR (PHP標準コーディング規約) という規約が存在するのですが、基はこれに従って書くのが一般的とされています。 ここではPSRをざっくり実際のコード例を交えながらまとめてみました。 各フレームワークにもそれぞれのコーディング規約が存在しますし、チームによって独自のルールを設けているところもあると思います。 優先度的には、 チームの独自規約 → 各フレームワークの規約 → PSR がいいのではないかと思います。 特にSESでいろんな現場でいろんなフレームワークを使う人にとっては、PSR準拠のコードを把握しているとどんな現場でも対応しやすいのではないでしょうか。 PSR-1 基コーディング規約 概要 PHPコードは <?php ?> か <?= ?>

    簡単比較!見ただけでわかるPHPコーディング規約 - Qiita
    kyompi
    kyompi 2020/07/21
  • PHPの型宣言(タイプヒンティング) - Qiita

    型宣言(タイプヒンティング)とは 関数に渡すパラメータ(引数)が、特定の型であることを関数の宣言時に要求できるようになります。 型宣言をするには、引数名の前に型名を追加するだけです。 $userList = ['user1', 'user2']; function test(array $list) // タイプヒンティング { echo $list; } test($userList); // OK test('hoge'); // Catchable fatal error: Argument 1 passed to test() must be of the type array, string given この場合はわかり易いですが、$listは配列でなければエラーが発生します。 arrayだと思ってたのにstringじゃんって怒られます。 すべての型を指定できるのか バージョン毎

    PHPの型宣言(タイプヒンティング) - Qiita
    kyompi
    kyompi 2020/07/14
  • 25年に渡る PHP の歴史

    PHPエコシステムに長年関与してきたことで知られるコントリビューターが JetBrains に入社。PhpStorm チームとともに PHP 言語とエコシステムの改善を目指す。

    25年に渡る PHP の歴史
    kyompi
    kyompi 2020/06/10
  • Deployerを使ってデプロイしてみたら想像以上に楽だった - Qiita

    1. Deployerのインストール 公式を見ると書いてありますが、インストールは3種類用意されてます。 ダウンロード compoer ソースからビルド 今回は直接DLしてきて使ってみます。 $ wget http://deployer.org/deployer.phar $ mv deployer.phar /usr/local/bin/dep $ chmod +x /usr/local/bin/dep

    Deployerを使ってデプロイしてみたら想像以上に楽だった - Qiita
  • Deployer を使ってデプロイしてみる | Tips Note by TAM

    皆さんは作成したプログラムをどうやって検証環境や番環境にデプロイしていますか? 最近では GitHub と連携して自動デプロイするホスティングサービスなど色々ありますが、僕は SFTP/FTPS/FTP での手動アップが多かったです。 手動アップだと差し替えミスがあったり単純に面倒くさかったりするので、そろそろ手動アップ卒業したいなと思い、 Deployer を使ってみました。 Deployer とは PHP で作られた CLI のデプロイツールです。 各種フレームワークをデプロイするレシピを備えており、簡単にデプロイ環境を構築することができます。 詳しくは公式を確認ください。 Deployer – A deployment tool for php 前提条件 Deployer を使うには対象サーバーへ ssh 接続ができることと、 Git がインストールされていることが必要です。 イン

    Deployer を使ってデプロイしてみる | Tips Note by TAM
  • Google Calendar API と PHP で 予定の取得と追加をしてみるよ(準備編) | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    半年前ぐらいに一眼カメラを買ってカメラ沼にズブズブとハマっているハルです。 最初、ズームレンズを買ったのですが、単焦点レンズというものに手を出したいなとも思っています。 ですが、まだ今のレンズのローンがあり、すぐには買えない……。かなしいです。 さて、最近、Google Calendar APIをつかって、自分のカレンダーに予定の追加と削除をしたくなりました。みなさんもそういうとき、ありますよね? そこで今回の記事では、Google Calendar APIを使うために必要な下準備をしていきます。 ちなみに、もう下準備終わってるよ! という方はこちらの後編の記事をご覧ください。 Google Calendar APIの準備 Google Cloud Platform にアクセスします。 Google Cloud Platform: https://console.cloud.google.

    Google Calendar API と PHP で 予定の取得と追加をしてみるよ(準備編) | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • PHP isset, empty, is_null の違い早見表 - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    PHP isset, empty, is_null の違い早見表 - Qiita
    kyompi
    kyompi 2019/04/17