TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #69 1.03K
استریم‌ ها در PHP - قسمت هشتم

- سایر استریم‌های ویژه

4- expect://

این استریم توسط افزونه PECL Expect فراهم می‌شود و به شما امکان تعامل با فرآیند‌های شبه‌تعاملی (مانند شبیه‌سازی رفتار ابزار expect در لینوکس) را می‌دهد.

با expect:// می‌توانید یک دستور سیستم‌عامل را اجرا کنید که منتظر ورودی کاربر است و سپس به صورت برنامه‌نویسی با آن تعامل کنید (ارسال ورودی‌ها و خواندن خروجی‌ها)، گویی که یک کاربر پشت ترمینال نشسته است.

مثلاً فرض کنید می‌خواهید از داخل PHP یک اسکریپت Python را اجرا کنید که در حین اجرا چند سوال yes/no از کاربر می‌پرسد. با expect:// می‌توانید PHP را طوری برنامه‌نویسی کنید که به آن سوالات پاسخ بفرستد و خروجی را دریافت کند.

این یک مورد پیشرفته است و بیشتر در محیط‌های خاص DevOps یا تست خودکار ابزارهای خط فرمان استفاده می‌شود.

$fp = fopen("expect://ftp", "w+");
fwrite($fp, "open example.com\n");
fwrite($fp, "user myusername\n");
fwrite($fp, "pass mypassword\n");
while ($line = fgets($fp)) {
echo $line;
// ...
}
fclose($fp);

در این مثال فرضی، ما برنامه ftp را با استریم expect باز کرده‌ایم. سپس چند فرمان را به آن ارسال کردیم (باز کردن اتصال، فرستادن نام‌کاربری و رمز). با fgets نیز خروجی برنامه ftp را خط‌به‌خط می‌خوانیم و چاپ می‌کنیم.

طبیعتاً در یک اسکریپت expect واقعی، شما منطق اضافه‌تری می‌نویسید تا تشخیص دهید چه زمانی ftp منتظر ورودی است (مثلاً عبارت "Password:" در خروجی ظاهر شد تا سپس رمز را ارسال کنید).

افزونه expect این امکانات تطبیق الگو را فراهم می‌کند. این توانمندی بسیار قدرتمند است اما محدود به مواقع خاص و نیازمند نصب extension است.

———

تا این قسمت با تمامی استریم های پیشفرض PHP آشنا شده ایم.

در قسمت بعد به ساخت استریم ها اختصاصی و شخصی سازی شده خواهیم پرداخت.


🔖 #PHP, #پی_اچ_پی

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 🔥 4
  • 👎 1
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →