当前位置: 首页
编程语言
PHP 伪协议 php:// 用法详解与官方手册解析

PHP 伪协议 php:// 用法详解与官方手册解析

热心网友 时间:2026-05-07
转载

PHP I/O Akışları: Kapsamlı Bir Kıla vuz

PHP, geliştiricilere dosya sistemleri ve ağ bağlantılarıyla çalışmanın ötesinde, çeşitli girdi/çıktı kaynaklarıyla etkileşim kurmak için güçlü bir araç seti sunar. Bu araçlar, PHP'nin kendi standart giriş/çıkış akışlarından, bellek tabanlı geçici depolamaya kadar uzanır. Hadi, bu "php://" protokolleri altındaki akışları birlikte inceleyelim.

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

php://stdin, php://stdout ve php://stderr

Bu üçlü, PHP sürecinin doğrudan standart girdi (stdin), çıktı (stdout) ve hata (stderr) akışlarına erişim sağlar. Aslında bu akışlar, mevcut dosya tanıtıcılarının birer kopyasına referans verir. Bu nedenle, örneğin `php://stdin`'i açıp kapatmanız, yalnızca o kopyayı etkiler; gerçek STDIN akışı aynı kalır. Burada küçük bir not düşmekte fayda var: PHP 5.2.1 ve öncesi sürümlerde bu da vranışta tutarsızlıklar olabiliyordu. Pratikte, bu sarmalayıcıları manuel olarak açmak yerine, doğrudan `STDIN`, `STDOUT` ve `STDERR` sabitlerini kullanmanız daha temiz ve önerilen bir yoldur. Erişim türlerine gelince: `php://stdin` salt okunurken, `php://stdout` ve `php://stderr` salt yazılır durumdadır.

php://input

`php://input`, HTTP isteğinin gövdesindeki ham veriyi okumanıza olanak tanıyan salt okunur bir akıştır. POST isteklerinde, `$HTTP_RAW_POST_DATA` küresel değişkenine kıyasla önemli a vantajlar sunar. Neden mi? Çünkü `php://input`'un da vranışı `php.ini` dosyasındaki özel yönergelere bağlı değildir. Ayrıca, `always_populate_raw_post_data` yönergesini etkinleştirmeye kıyasla daha az bellek tüketen bir seçenektir. Ancak dikkat: Bu akış, `enctype="multipart/form-data"` ile gönderilen form verileri için kullanılamaz.

php://output

`php://output`, çıktı tamponlaması mekanizmasına doğrudan yazma yapmanızı sağlayan salt yazılır bir akıştır. Bu, özellikle çıktıyı özelleştirilmiş bir şekilde işlemek veya doğrudan tampona müdahale etmek istediğiniz senaryolarda kullanışlıdır.

php://fd

`php://fd` protokolü, size açık olan belirli bir dosya tanıtıcısına doğrudan erişim hakkı verir. Sözdizimi oldukça basittir: Örneğin, `php://fd/3` ifadesi, dosya tanıtıcı numarası 3'ü ifade eder.

php://memory ve php://temp

Bu ikili, geçici verileri dosya benzeri bir arayüzle depolamak için tasarlanmış okuma-yazma akışlarıdır. Peki aralarındaki fark ne? Temel fark, depolama stratejilerinde yatar. `php://memory` akışı, verilerini her zaman ve tamamen bellekte tutar. `php://temp` ise daha esnek bir yaklaşım sergiler: Bellekte depolanan veri miktarı önceden tanımlanmış bir sınıra (öntanımlı olarak 2 MB) ulaşana kadar bellekte çalışır; bu sınır aşıldığında ise otomatik olarak sunucuda geçici bir dosya oluşturup kullanmaya başlar. Bu sınırı, `php://temp/maxmemory:NN` şeklinde bir yol belirterek özelleştirebilirsiniz; burada `NN`, geçici dosyaya düşmeden önce kullanılacak maksimum bellek miktarını bayt cinsinden belirtir.

php://filter

`php://filter`, belki de en güçlü ve benzersiz akış türüdür. Bir "meta sarmalayıcı" olarak tasarlanmıştır ve asıl amacı, bir akış açılırken üzerine anında süzgeçler (filters) uygulamaktır. Bu ne işe yarar? Diyelim ki `file_get_contents()` veya `fopen()` gibi, akışın içeriğini okumadan önce süzgeç uygulama şansınız olmayan fonksiyonlarla çalışıyorsunuz. İşte `php://filter` tam da burada devreye girerek, akış kaynağının yolunun bir parçası olarak süzgeç zincirleri tanımlamanıza izin verir. Tek bir yolda, boru (`|`) karakteriyle ayırarak birden fazla süzgeci zincirleme şekilde belirtebilirsiniz. Kullanım detayları için resmi dokümanlardaki örnekler oldukça aydınlatıcıdır.

php://filter Seçenekleri

Seçenek: resource=
Bu seçenek zorunludur. Hangi akışın süzüleceğini belirtir.

Seçenek: read=
Bu seçenek isteğe bağlıdır. Okuma işlemi için uygulanacak bir veya daha fazla süzgeci belirtir. Süzgeçler boru (`|`) karakteri ile ayrılır.

Seçenek: write=
Bu seçenek isteğe bağlıdır. Yazma işlemi için uygulanacak bir veya daha fazla süzgeci belirtir. Süzgeçler boru (`|`) karakteri ile ayrılır.

Önemli bir not: Eğer `read=` veya `write=` ön ekleri olmadan, doğrudan bir süzgeç listesi belirtirseniz, bu liste uygun olduğu durumlarda hem okuma hem de yazma zincirlerine aynı anda uygulanır.

来源:https://blog.csdn.net/weixin_29964487/article/details/115502334

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
CentOS系统下PHP-FPM进程监控与性能优化指南

CentOS系统下PHP-FPM进程监控与性能优化指南

要监控CentOS上的PHP-FPM,您可以使用以下方法 使用命令行工具 对于习惯与终端打交道的运维人员来说,命令行工具是最直接的选择。 top:这是最经典的实时系统监控工具。想快速聚焦PHP-FPM进程?很简单,运行top后,按下u键,再输入运行PHP-FPM的用户名,界面就会立刻筛选出相关进程,

时间:2026-05-07 11:16
CentOS 系统下 PHP 应用容器化部署指南

CentOS 系统下 PHP 应用容器化部署指南

在CentOS上使用Docker容器化部署PHP应用 将PHP应用进行容器化部署,如今已成为提升开发一致性和运维效率的标准操作。在CentOS环境下,借助Docker平台,我们可以快速搭建起一个独立、可移植的运行环境。下面,就让我们一起梳理一下从零开始的基本部署流程。 1 安装Docker 万事开

时间:2026-05-07 11:15
CentOS系统下PHP并发处理的实现方法与优化

CentOS系统下PHP并发处理的实现方法与优化

在CentOS上使用PHP实现并发处理,可以采用以下几种方法: 想让PHP在CentOS上跑得更快、处理更多任务?并发处理是关键。别担心,PHP生态里其实有不少成熟的方案可选,每种都有其独特的适用场景。下面我们就来聊聊几种主流的方法,从多线程到消息队列,帮你找到最适合你项目的那一款。 1 使用多线

时间:2026-05-07 11:15
CentOS系统下vsFTP服务与其他应用集成配置指南

CentOS系统下vsFTP服务与其他应用集成配置指南

在CentOS系统中集成VSFTPD与其他服务 在CentOS服务器环境中,VSFTPD(Very Secure FTP Daemon)因其出色的安全性和稳定性,成为搭建FTP服务的首选。但你是否想过,让这个传统的FTP守护进程与现代的Web服务(比如Apache或Nginx)联动起来?这样一来,用

时间:2026-05-07 11:15
Debian系统下Golang项目备份方法与详细步骤

Debian系统下Golang项目备份方法与详细步骤

在Debian系统中为Golang项目建立一套可靠的备份方案,是保障开发成果安全的关键步骤。掌握几个核心命令,你就能轻松实现自动化备份,确保代码资产万无一失。 整个备份流程可以系统性地分解为几个明确阶段,下面我们将详细解析每个步骤的操作方法。 第一步:定位项目目录 首先,打开终端。你需要准确导航至G

时间:2026-05-07 11:15
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程