


php bukan bahasa skrip yang telah menarik banyak perhatian, tetapi ini adalah kasihan, kerana PHP mempunyai banyak cita -cita yang menjadikannya pilihan yang ideal untuk menulis aplikasi terminal.
Siri artikel ini akan memperkenalkan cara menggunakan Perpustakaan MacRame untuk menulis skrip baris perintah interaktif. Kami akan melengkapkan item sampel secara beransur -ansur. Gaya, dan jalankan fungsi di latar belakang apabila pemuat animasi dipaparkan kepada pengguna.
Untuk maklumat lanjut mengenai MacRame, lawati tapak dokumen.
Contoh item
Projek yang akan kami selesaikan adalah skrip baris arahan mudah yang digunakan untuk mengembalikan senarai pengikut pengguna Mastodon. Jalankan skrip seperti yang ditunjukkan di bawah:
Gambaran Keseluruhan
Dalam bahagian ini, bagaimana kita akan memperkenalkan:
Pasang MacRame
Buat skrip kosong
- Baca parameter baris arahan
- Buat menu dinamik
- baca garis input pengguna (pengesahan pilihan)
- Tetapkan gaya teks output
- Pasang MacRame
- Pasang MacRame:
Buat Rangka Kerja Skrip
Selepas memasang MacRame, kami boleh menyediakan skrip asas "Hello World" dan menggunakannya sebagai model permulaan kami. Walaupun secara teknikal, rangka kerja ini tidak diperlukan, tetapi gunakannya akan menjadikan skrip kami lebih selamat dan lebih standard. Mari kita lihat kod:
composer require gbhorwood/macrame
Walaupun tidak banyak baris kod, banyak perkara berlaku di sini. Mari kita lihat lebih dekat.
Baris ini adalah "Shebang". Pada asasnya, ia memberitahu sistem operasi Linux kami yang menjadi jurubahasa untuk menjalankan skrip ini. Ini membolehkan kita menjalankan skrip tanpa perlu menaip PHP terlebih dahulu. Shebang <<> mesti
#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 實(shí)例化 Macrame 對(duì)象。 // 參數(shù)是 ps(1) 所見的腳本名稱 $macrame = new Macrame("示例 Macrame 腳本"); // 強(qiáng)制僅在命令行上執(zhí)行腳本時(shí)才運(yùn)行腳本 if ($macrame->running()) { // 驗(yàn)證主機(jī)系統(tǒng)是否可以運(yùn)行 Macrame 腳本。失敗時(shí)退出 $macrame->preflight(); // 將文本輸出到 STDOUT $macrame->text("Hello World")->write(); // 清潔退出 $macrame->exit(); }baris pertama fail, walaupun sebelum & lt;?
<<>
#!/usr/bin/env phpdi sini, kami membuat objek MacRame yang akan kami gunakan di seluruh skrip. Kandungan yang sangat standard. Satu -satunya bahagian yang menarik ialah parameter. Ini adalah nama sistem operasi yang akan memberi kita skrip. Sebagai contoh, jika kita menjalankan PS untuk memaparkan senarai proses berjalan, skrip kami akan memaparkan nama ini.
Kenyataan ini memastikan bahawa semua kod dalam blok hanya dilaksanakan apabila skrip dijalankan pada baris arahan.
composer require gbhorwood/macrame
Apabila kita menulis PHP untuk baris arahan, kawalan kita terhadap persekitaran tidak seperti pelayan web yang kita ada dan menguruskan. Preflicht () memanggil persekitaran PHP tempatan. Keperluan minimum adalah: <:>
- php 7.4
- POSIX EXTENSION
- mbstring extension
- <:> NOTA:
Ini akan keluar dari skrip dengan bersih dan mengembalikan kod kejayaan 0. Di samping itu, sebarang fail sementara yang dibuat semasa pelaksanaan akan dipadamkan secara automatik. Adalah lebih baik untuk menggunakan fungsi keluar () macrame dan bukannya mati () php;
Jalankan Hello World#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 實(shí)例化 Macrame 對(duì)象。 // 參數(shù)是 ps(1) 所見的腳本名稱 $macrame = new Macrame("示例 Macrame 腳本"); // 強(qiáng)制僅在命令行上執(zhí)行腳本時(shí)才運(yùn)行腳本 if ($macrame->running()) { // 驗(yàn)證主機(jī)系統(tǒng)是否可以運(yùn)行 Macrame 腳本。失敗時(shí)退出 $macrame->preflight(); // 將文本輸出到 STDOUT $macrame->text("Hello World")->write(); // 清潔退出 $macrame->exit(); }
Selepas menulis skrip asas "Hello World", kita boleh menetapkan keizinannya untuk membolehkan pelaksanaan dan menjalankannya pada baris arahan.
baca parameter <讀>
MacRame menyediakan satu set alat untuk analisis dan membaca parameter baris perintah. Mari kita mulakan dengan beberapa perkara mudah: dapatkan nombor versi apabila menggunakan arahan berikut untuk memanggil skrip:
#!/usr/bin/env php
Untuk keadaan ini, kita hanya perlu memeriksa sama ada parameter ini wujud.
kita boleh mencapai tujuan ini dengan memanggil kaedah Args () pada objek MacRame. Untuk menguji sama ada parameter wujud, kita boleh menggunakan kaedah wujud (), seperti yang ditunjukkan di bawah:
$macrame = new Macrame("示例 Macrame 腳本");
ada () kaedah kembali ke boolean.
?
if ($macrame->running())
Parameter baris arahan juga boleh digunakan untuk memberikan nilai untuk pembolehubah. Sebagai contoh, untuk menetapkan nilai nama pengguna, kami mungkin berharap pengguna boleh memanggil skrip seperti ini:
Untuk mendapatkan nilai parameter ini dalam skrip kami, kami boleh menggunakan kaedah pertama () yang disediakan oleh args (), seperti yang ditunjukkan di bawah:
seperti namanya, kaedah pertama () mengembalikan nilai
$macrame->preflight();
pertama parameter. Sekiranya kita memanggil skrip seperti ini:
$macrame->exit();
kemudian pertama () akan mengembalikan nilai "FirstUser". Jika kita mahu nilai terakhir, kita boleh menghubungi terakhir (). Jika kita mahu semua sebagai array, kita akan menggunakan semua ().
chmod 755 ./examplescript.php ./examplescript.phpmeletakkan semua ini bersama -sama, skrip kami kelihatan seperti ini sekarang:
Senarai kaedah penuh Parameter baris arahan pengendalian diperkenalkan dalam dokumen parameter MacRame.
Buat menu dinamik
./examplescript.php --version # 或 ./examplescript.php -vkami juga berharap untuk membolehkan pengguna menggunakan skrip kami secara interaktif. Jika mereka tidak lulus parameter pada baris arahan, kami akan meminta mereka memasukkan data. Untuk contoh Mastodon, kami akan menggunakan menu ini.
menu macrame adalah dinamik;
<<>
mari kita tulis fungsi yang memaparkan menu kepada pengguna dan mengembalikan nilai nilai yang dipilih:composer require gbhorwood/macrame
Fungsi teras di sini adalah untuk memanggil yang berikut:
#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 實(shí)例化 Macrame 對(duì)象。 // 參數(shù)是 ps(1) 所見的腳本名稱 $macrame = new Macrame("示例 Macrame 腳本"); // 強(qiáng)制僅在命令行上執(zhí)行腳本時(shí)才運(yùn)行腳本 if ($macrame->running()) { // 驗(yàn)證主機(jī)系統(tǒng)是否可以運(yùn)行 Macrame 腳本。失敗時(shí)退出 $macrame->preflight(); // 將文本輸出到 STDOUT $macrame->text("Hello World")->write(); // 清潔退出 $macrame->exit(); }
Kami menyediakan array rentetan sebagai pilihan menu, dan teks tajuk menu pilihan untuk menu ()-& gt; Pilihan pengguna akan dikembalikan sebagai rentetan.
Dengan menambah untuk memadam () ke rantai kami, anda juga boleh memilih untuk memadamkan menu dari skrin selepas pengguna membuat pilihan. Kaedah ini adalah pilihan, tetapi ia sememangnya boleh kemas.
Selepas mendapatkan fungsi menu, kita boleh mengubah cara untuk mendapatkan contoh Mastodon. Kami akan cuba membacanya dari parameter baris arahan.
#!/usr/bin/env php
Penerangan Tambahan Gaya Menu
Secara lalai, MacRame menggunakan gaya lalai dan warna terminal untuk memaparkan menu, dan projek yang menyoroti paparan yang dipaparkan ditetapkan untuk paparan terbalik. Jika perlu, kita boleh mengubah tetapan ini dengan menambahkan beberapa fungsi tambahan ke rantai kami. Sebagai contoh, jika kita mahu menyerlahkan item yang dipaparkan yang dipaparkan sebagai teks merah tebal, kita boleh menulis ini:
$macrame = new Macrame("示例 Macrame 腳本");
Halaman dokumen menu Gambaran keseluruhan lengkap semua kaedah yang boleh digunakan untuk menyesuaikan warna, gaya dan penjajaran menu adat.
baca barisan pengguna untuk masukkan
Seterusnya, kami akan mengubah cara untuk mendapatkan nama pengguna supaya ia juga akan menerima input interaktif. Dalam kes ini, kami akan menggunakan input ()-& gt; Berikut adalah fungsi: <>
if ($macrame->running())Baris terakhir fungsi ini adalah di mana kita bertanya dengan pengguna. Kaedah ReadLine () menerima Parameter Prompt $ Pilihan; Nilai pulangan adalah rentetan yang dimasukkan oleh pengguna.
Penerangan Tambahan Pengesahan Input
Pengguna akan membuat kesilapan. Inilah sebabnya pengesahan input adalah penting.
MacRame dilengkapi dengan banyak kaedah pratetap untuk mengesahkan input. Kami boleh menambah sebilangan pengesahan ke rantai kami. Input ()-& gt;
mari kita lihat contoh:
$macrame->preflight();di sini, kami menggunakan dua ujian pengesahan: Teks mestilah empat atau lebih aksara, dan tidak boleh memasukkan simbol "@". Untuk kedua -dua kaedah pengesahan ini, parameter kedua adalah mesej ralat yang akan kami paparkan kepada pengguna jika pengesahan gagal.
Halaman Dokumen Input MacRame menyediakan senarai lengkap semua fungsi pengesahan pra -konstruktif. Jika kita mahu menulis peranti pengesahan tersuai kita sendiri, ia juga diperkenalkan di dalamnya.
Bagaimana dengan output "paparan belakang seperti titik"?
Jika pengguna kami memasuki data sensitif, seperti kata laluan, kami mungkin tidak mahu menunjukkan kunci mereka kembali ke terminal untuk mengelakkan dilihat oleh spymen.
Untuk menyelesaikan masalah ini, MacRame menyediakan versi "paparan belakang berbentuk titik" bacaan (), yang dipanggil ReadPassword ().
$macrame->exit();ReadPassword () Setiap butang dibaca akan diturunkan dalam bentuk nombor bintang.
tetapkan gaya teks
Dalam contoh cara membaca garis teks pengguna, kami telah melihat sejumlah besar kod yang digunakan untuk menetapkan gaya teks segera. Mari kita pelajari secara terperinci.
MacRame membolehkan penggunaan kod ANSI untuk menetapkan gaya output teks terminal, yang membolehkan kita menggunakan gaya dan warna badan tebal dan badan serong ke teks kami.
Kami boleh melakukan operasi ini dalam skrip kami melalui dua cara. Terdapat beberapa cara, seperti gaya () dan warna () (atau warna ()), atau kita boleh menggunakan sistem tanda teks asas.
mari kita lihat kaedah pertama.
composer require gbhorwood/macrame
di sini, kami menggunakan kaedah Teks () MacRame untuk membuat objek "teks", kemudian gunakan gaya dan warna, dan akhirnya gunakan GET () untuk mengembalikannya sebagai rentetan.
Sila ambil perhatian bahawa kaedah gaya dan warna digunakan untuk semua teks dalam rentetan. Jika kita mahu mencampurkan gaya dan teks warna dengan teks tulen, kita perlu membuat banyak sub -string dan menyambungkannya bersama -sama. Ini mungkin sangat menyusahkan, terutamanya apabila berurusan dengan sejumlah besar teks.
atau, kita boleh menggunakan sistem markup MacRame untuk memudahkan tetapan gaya teks. Ini adalah contoh: <>
#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 實(shí)例化 Macrame 對(duì)象。 // 參數(shù)是 ps(1) 所見的腳本名稱 $macrame = new Macrame("示例 Macrame 腳本"); // 強(qiáng)制僅在命令行上執(zhí)行腳本時(shí)才運(yùn)行腳本 if ($macrame->running()) { // 驗(yàn)證主機(jī)系統(tǒng)是否可以運(yùn)行 Macrame 腳本。失敗時(shí)退出 $macrame->preflight(); // 將文本輸出到 STDOUT $macrame->text("Hello World")->write(); // 清潔退出 $macrame->exit(); }Teks antara <<> dan
tanda akan menebal (tentu saja). Dokumen ini menyenaraikan senarai lengkap semua tanda.
Ini bermakna tanda bersarang tidak akan berfungsi seperti yang kita harapkan. Sebagai contoh, dalam contoh ini, tanda pertama akan ditutup
dan tanda:
#!/usr/bin/env php
Setakat ini, skrip contoh kami ditunjukkan di bawah:
apakah yang seterusnya
$macrame = new Macrame("示例 Macrame 腳本");
Setakat ini, kami telah memperkenalkan parameter baris arahan membaca, mendapatkan input pengguna dari menu dan teks, dan membuat beberapa gaya teks asas untuk output. Dalam artikel seterusnya, kami akan memperkenalkan:
jalankan fungsi di latar belakang apabila pemuat animasi dipaparkan kepada pengguna
- tulis fail dengan selamat
- output data array sebagai output format yang baik
- paparan paparan output panjang
- output tahap pemberitahuan asas
Atas ialah kandungan terperinci PHP: Menulis aplikasi baris arahan dengan MacRame. pt 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Masalah dan penyelesaian biasa untuk skop pembolehubah PHP termasuk: 1. Pembolehubah global tidak dapat diakses dalam fungsi, dan ia perlu diluluskan menggunakan kata kunci atau parameter global; 2. Pembolehubah statik diisytiharkan dengan statik, dan ia hanya dimulakan sekali dan nilai dikekalkan antara pelbagai panggilan; 3. Pembolehubah hyperglobal seperti $ _get dan $ _post boleh digunakan secara langsung dalam mana -mana skop, tetapi anda perlu memberi perhatian kepada penapisan yang selamat; 4. Fungsi Anonymous perlu memperkenalkan pembolehubah skop induk melalui kata kunci penggunaan, dan apabila mengubah suai pembolehubah luaran, anda perlu lulus rujukan. Menguasai peraturan ini boleh membantu mengelakkan kesilapan dan meningkatkan kestabilan kod.

Untuk mengendalikan muat naik fail PHP dengan selamat, anda perlu mengesahkan sumber dan jenis, mengawal nama fail dan laluan, menetapkan sekatan pelayan, dan memproses fail media dua kali. 1. Sahkan sumber muat naik untuk mengelakkan CSRF melalui token dan mengesan jenis mime sebenar melalui finfo_file menggunakan kawalan putih; 2. Namakan semula fail ke rentetan rawak dan tentukan pelanjutan untuk menyimpannya dalam direktori bukan web mengikut jenis pengesanan; 3. Konfigurasi PHP mengehadkan saiz muat naik dan direktori sementara Nginx/Apache melarang akses ke direktori muat naik; 4. Perpustakaan GD menyambung semula gambar -gambar untuk membersihkan data yang berpotensi.

Terdapat tiga kaedah umum untuk kod komen PHP: 1. Use // atau # untuk menyekat satu baris kod, dan disyorkan untuk menggunakan //; 2. Gunakan /.../ untuk membungkus blok kod dengan pelbagai baris, yang tidak boleh bersarang tetapi boleh diseberang; 3. Komen -komen kemahiran gabungan seperti menggunakan / jika () {} / untuk mengawal blok logik, atau untuk meningkatkan kecekapan dengan kunci pintasan editor, anda harus memberi perhatian kepada simbol penutupan dan mengelakkan bersarang apabila menggunakannya.

Kunci untuk menulis komen PHP adalah untuk menjelaskan tujuan dan spesifikasi. Komen harus menjelaskan "mengapa" dan bukannya "apa yang dilakukan", mengelakkan redundansi atau terlalu kesederhanaan. 1. Gunakan format bersatu, seperti docblock (/*/) untuk deskripsi kelas dan kaedah untuk meningkatkan keserasian dan keserasian alat; 2. Menekankan sebab -sebab di sebalik logik, seperti mengapa JS melompat perlu dikeluarkan secara manual; 3. Tambahkan gambaran keseluruhan gambaran sebelum kod kompleks, terangkan proses dalam langkah -langkah, dan membantu memahami idea keseluruhan; 4. Gunakan Todo dan Fixme secara rasional untuk menandakan item dan masalah untuk memudahkan penjejakan dan kerjasama berikutnya. Anotasi yang baik dapat mengurangkan kos komunikasi dan meningkatkan kecekapan penyelenggaraan kod.

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Tolearnphpeffectively, startbysettingupalocalverenvironmentusingToolsLikexamppandaCodeDitorLikevscode.1) InstallXamppforapa Che, MySql, danPhp.2) UseAcodeeditorForsyntaxSupport.3) testyoursetupwithasimplephpfile.next, learnphpbasicsincludingvariables, ech

Dalam PHP, anda boleh menggunakan kurungan persegi atau pendakap keriting untuk mendapatkan aksara indeks spesifik rentetan, tetapi kurungan persegi disyorkan; Indeks bermula dari 0, dan akses di luar julat mengembalikan nilai null dan tidak dapat diberikan nilai; MB_SUBSTR dikehendaki mengendalikan watak multi-bait. Sebagai contoh: $ str = "hello"; echo $ str [0]; output h; dan watak -watak Cina seperti MB_SUBSTR ($ str, 1,1) perlu mendapatkan hasil yang betul; Dalam aplikasi sebenar, panjang rentetan perlu diperiksa sebelum gelung, rentetan dinamik perlu disahkan untuk kesahihan, dan projek berbilang bahasa mengesyorkan menggunakan fungsi keselamatan multi-bait secara seragam.

Toinstallphpquickly, usexampponwindowsorhomeBrewonmacos.1.onwindows, downloadandInstallxampp, selectcomponents, startapache, andplaceFilesinhtdocs.2.alternative, secara manualstallphpfromphp.netandsheBerver.3
