コンテンツにスキップ

ntorelabo

Front End Developer

  • pickup
  • WordPress
  • PHP
    • PHP技術者認定試験
  • Docker
  • Next.js
  • AWS
  • Laravel
  • site map
  • search

ntorelabo

Front End Developer

  • search
  • pickup
  • WordPress
  • PHP
    • PHP技術者認定試験
  • Docker
  • Next.js
  • AWS
  • Laravel
  • site map

【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://)

  • ホームページ
  • 【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://)
  • 3月, 月, 2025
  • PHP
【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://)

Contents [hide]

  • 1 file://でローカルファイルにアクセス
  • 2 php://input とは
    • 2.1 ストリーム
    • 2.2 php:// はどういうときに使用される?
  • 3 http:// https://
  • 4 参考サイト

file://でローカルファイルにアクセス

ローカルファイルシステムにアクセスするためのラッパです

file:///var/www/html/index.php のような形で指定可能できます。

省略形として単に /var/www/html/index.php としてもOK(デフォルトが file:// なので省略可)

<?php

// 対象のファイルパス。file://を明示的につける
$filePath = 'file:///path/to/test.txt';

// fopen()でファイルを開く
$handle = fopen($filePath, 'r');

if ($handle === false) {
    die('ファイルを開けませんでした。');
}

php://input とは

php://input はHTTPリクエストのボディ部分(生のデータ)を直接読み取るためのストリームです。

ストリーム

「継続的にやり取りされるデータを、順次読み書きするための標準化された抽象インターフェース」です。

ストリームと「一括処理」の対比

観点ストリーム (stream)一括処理 (non-stream)
データの扱い方流れてくるデータを順次読み書きする全データを一度に取得・保持してから処理する
メモリ使用量読む/書く単位が少量ずつなので、比較的少なく済む全体を読み込むため、データが大きいと大量のメモリが必要
実装のイメージfopen()→fread() で少しずつ読み進めるfile_get_contents() などで一気に読み込んで、変数へ格納する
処理の開始タイミングデータの先頭から届き次第すぐに処理を始められるデータを全部読み終わってからでないと処理を始めにくい
リアルタイム性高い(受信しながらリアルタイムで対応が可能)低い(全データ揃うのを待つ必要がある)
主な用途大容量、連続データ、ネットワーク通信、ログの逐次処理小~中程度のファイルや一括ダウンロード・一括アップロードなど

    ※ php:// でアクセスしているものは常に「ストリーム」ですが、file_get_contents() はそのストリームを内部で一気に読み込むだけです。ですので「php:// はストリームでありながら、file_get_contents() を使うと一括処理に見える」

    php:// はどういうときに使用される?

    通常のフォーム送信(application/x-www-form-urlencoded や multipart/form-data)であれば $_POST や $_FILES にデータが自動的に格納されますが、JSON形式や独自形式のデータを受け取る場合など、PHPが自動でパースしないデータ形式を扱う際に利用することが多いです。

    http:// https://

    PHPにおける http:// および https:// のストリームラッパーは、リモートサーバー上のファイルやコンテンツを「読み込む」ための仕組み

    読み込み専用であることが多く、標準の方法では fwrite() 等による直接書き込みはできない

    参考サイト

    サポートするプロトコル/ラッパー
    https://www.php.net/manual/ja/wrappers.php

    php8上級/準上級試験
    最近の投稿
    • WordPressサイトのサブディレクトリ→サブドメイン移行手順 2025年7月6日
    • Laravelでリッチテキストエディタで使いやすい画像アップロード機能を実装(TinyMCE) 2025年6月22日
    • 【PHP】出力バッファリング制御 2025年5月22日
    • basic認証のパスワードを忘れた場合 2025年5月14日
    • PHP 8.0〜から実装で便利な機能(名前付き引数、match) 2025年5月11日
    • さくらインターネットからWHOIS登録メールアドレスの利用廃止のメールが来た 2025年5月9日
    • スムーズにスクロールする処理をjQueryで実装 2025年5月5日
    • Gemini for Google Workspace 活用術 2025年4月24日
    • Google Cloud の始め方 2025年4月20日
    • 【PHP】switch分の書き方、PHP 7.3 から PHP7.4の変更点 2025年4月19日
    • 【PHP】新しい方の指定方法「nullable」 2025年3月25日
    • 「PHPでJSONを扱う」json_encodeとjson_decode完全ガイド 2025年3月23日
    • 【WordPress自作テーマ開発】固定ページを自動作成する方法(下層ページ実装) 2025年3月18日
    • 【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://) 2025年3月17日
    • 【PHP】stdClass を使用して(object) でキャスト 2025年3月16日
    • モダンなPHPコードで使用!無名関数の使い方 2025年3月15日
    • Cursor 便利な機能まとめ、Project Rules 2025年3月15日
    • PHP セッション名の変更方法と php.ini の記述方法まとめ 2025年3月12日
    • 【PHP】関数内でグローバル変数を使用するためには global キーワード 2025年3月10日
    • 【php8上級/準上級試験】模擬問題解説 問題30 strtotime() 2025年3月4日
    About Us

    Ready To Start Work With Us?

    Felis consequat magnis est fames sagittis ultrices placerat sodales porttitor quisque.

    Get a Quote
    recent posts
    • WordPressサイトのサブディレクトリ→サブドメイン移行手順
    • Laravelでリッチテキストエディタで使いやすい画像アップロード機能を実装(TinyMCE)
    • 【PHP】出力バッファリング制御
    • basic認証のパスワードを忘れた場合
    • PHP 8.0〜から実装で便利な機能(名前付き引数、match)
    • さくらインターネットからWHOIS登録メールアドレスの利用廃止のメールが来た
    • スムーズにスクロールする処理をjQueryで実装
    • Gemini for Google Workspace 活用術
    Opening Hours
    Week Days 10:00 - 17:00
    Saturday 10:00 - 15:00
    Sunday Day Off
    Contact us
    popular posts
    • WordPressで画像を拡大表示するなら「Firelight Lightbox」(旧名:Easy Fancybox) 1.1k件のビュー
    • 【WordPress】カスタムフィールド作成の仕方「ACF」Advanced Custom Fieldsの使用法 743件のビュー
    • 【チートシート】Linuc Lv1-102 実務での使用例も解説 613件のビュー
    • My-Snow-Monkey使用例、子テーマによるカスタマイズ 513件のビュー
    • 【WordPressエラー】「Warning: Undefined variable $post in …」「Warning: Attempt to read property “ID” on null in …」 466件のビュー
    • Twitter、Facebookのタイムラインを埋め込む 415件のビュー
    • 【Next.js】ライブラリ使わないでカルーセルスライダー 304件のビュー
    • ローカル、グローバルIPアドレスの違いと確認手順 294件のビュー
    • AWS認定ソリューションアーキテクト-アソシエイトレベル 248件のビュー
    • WordPress自作、カスタマイズ 229件のビュー
    Search
    Copyright © 2025 ntorelabo | Powered by Desert Themes