تجزیه و تحلیل ردیف PHP. تجزیه و پردازش صفحه وب پی اچ پی: بهترین کتابخانه را انتخاب کنید

تاریخ انتشار: 03.01.2018

سلام، دوستان! 🙂

من فکر می کنم که اگر نه همه، دقیقا، دقیقا بیشتر از شما با نیاز به خواندن اطلاعات از فایل های TXT در سطح اسکریپت سرور آمده است. من، حداقل، چند مورد وجود داشت، در مورد آخرین که من امروز به شما بگویم.

در این زمینه هیچ چیز پیچیده ای وجود ندارد، اما گاهی اوقات چشم ها از فراوانی گزینه های ارائه شده توسط زبان های سرور فرار می کنند. اگر به طور خاص در مورد پی اچ پی که من در حال حاضر برنامه ریزی می کنم صحبت کنیم، سپس با استفاده از توابع آن، می توانید محتویات فایل ها و خط ها را بخوانید و به طور کامل در رشته و در یک آرایه، و برای آخرین گزینه چندین راه دیگر وجود دارد ... این ها کیک هستند

متأسفانه، این روش ها با سرعت های مختلف برای فایل های ساختارهای مختلف کار می کنند و هیچ کلمه ای در اسناد رسمی وجود ندارد؛ این را می توان تنها در عمل، از طریق تمام گزینه های ممکن قضاوت کرد.

بنابراین، امروز من به شما کار توابع مختلف پی اچ پی را برای خواندن فایل ها به شما نشان می دهد، زمانی که شما نیاز به ایجاد یک فایل php php برای حل وظایف واقعی، شما می دانستید که چه چیزی را انتخاب کنید. و من نیز به من می گویم که چگونه انتخاب درست را در "شرایط مبارزه" انتخاب کنید.

برو 🙂

ایجاد PHP File Parser - شرایط اولیه

قبل از شروع، چند کلمه در مورد کار که من یک تجزیه کننده فایل را بر روی پی اچ پی ایجاد کردم، و سپس از گزینه های بهینه انتخاب کردم.

هنگامی که من در محل کار مشکلی داشتم، این واقعیت بود که پایگاه های داده ها به تلفن های کاربر در فرمت نادرست نگهداری شدند. اشکال خودم، به طور طبیعی، بدون مشکلات ثابت شده است.

اما با اطلاعات نادرست چه کاری انجام دهید، که در آن زمان در پایگاه داده ذخیره شده بود؟ به طور طبیعی، او باید به صورت صحیح جایگزین شود.

برای انجام این کار، من با یک فایل متنی با شناسه کاربر و گوشی های آنها مورد نیاز برای انتقال به پایگاه داده ارائه شد.

باید بگویم، معلوم شد که بسیار بزرگ است: 352 کیلوبایت و 8223 خط متن، که هر کدام شامل یک شناسه کاربری و تلفن خود را در قالب بود شناسه کاربر: number_tephone.

به یک کلمه، کل کار این بود که یک خط خواندن ابزار فایل پی اچ پی، برجسته کردن شناسه و رشته تلفن، و سپس به روز رسانی ارزش تلفن کاربر در پایگاه داده یافت شده از طریق IdaiDaise.

پروژه من بر روی Framework Yii PHP اجرا شد، بنابراین در نمونه های بیشتری از کد شما عناصر API خود را برای کار با پایگاه داده پیدا خواهید کرد، به ویژه، بنابراین نترسید 🙂

پس از تجزیه و تحلیل طرح های موجود در زبان، و همچنین تجربه توسعه دهندگان دیگر، بر روی دانه های مونتاژ در اینترنت، من توانستم 4 روش را برجسته کنم که من بیشتر به شما نشان می دهم و نشان می دهم.

خوب، پس از اینکه به شما می گویم چه معیارها و دقیقا همان گزینه را انتخاب کردم. و به طور طبیعی، من نتایج را به اشتراک می گذارم 🙂

بنابراین این مقاله یک تمرین عالی بیمار است. این ماهیت این است که ماهیت آن در یک مطالعه دقیق از مواد بعدی تا نتایج است که منتظر شما خواهد بود. در این دوره، به هر حال، شما می توانید حتی بیش از فانتزی کار کنید، فرض کنید دقیقا چگونگی انتخاب گزینه کامل را انتخاب کنید.

خواندن یک فایل در خط پی اچ پی با FGETS ()

به عنوان یک نتیجه، تجزیه کننده فایل پی اچ پی اجرای این الگوریتم، فرم زیر را انجام دادم:

پیدا کردن ("منحصر به فرد_id in (: id1، id2)"، آرایه (": id1" \u003d\u003e strtolower (params params)، ": id2" \u003d\u003e strtoupper ($ params))؛ اگر ($ client) ($ client-\u003e phone \u003d str_replace (آرایه ("\\ r"، "\\ n")، ""، $ params)؛ $ client-\u003e ذخیره ()؛)))))))))))))))))))))))))))))))) ($ fh)) (echo "خطا: fgets غیرقانونی () fagets \\ n"؛) fclose ($ fh)؛ ) ELECO ECHO "بررسی نام فایل، فایل" t وجود دارد! "؛)

اگر کسی در درک دشواری دچار مشکل شود، نوشته های خود را کمی رمزگشایی کردم.

در ابتدا، متغیر $ نام فایل مقدار یک نام فایل را که بسته بندی می شود، اختصاص می دهد، با یک راه کامل به آن. بعد پی اچ پی را بررسی کنید که وجود فایل را بررسی کنید و بخوانید که آیا از توابع استفاده می کنید فایل وجود دارد () و is_readable () به ترتیب.

اگر همه چیز خوب باشد، سپس فایل را با استفاده از تابع باز کنید fopen ()که با اپراتور مدیریت خطا پی اچ پی نامیده می شود تا خروجی خطا تولید شده توسط این تابع را غیرفعال کند. من تصمیم گرفتم از آن برای تولید پیام خطای من به جای استاندارد استفاده کنم.

اگر فایل باز باشد، ما از طریق تمام خطوط خود در حلقه تا زمانی که فایل تمام شده است، و اگر رشته خالی نیست، ما آن را با عملکرد نماد کولون تقسیم می کنیم انفجار ().

سپس بررسی کنید که شناسه کاربر و تلفن آن خالی نیستند، ما به دنبال یک کاربر در پایگاه داده در Idarenik هستیم و اگر هر کدام از شماره تلفن را به روز رسانی می کنید، از بین بردن تعداد نمادهای انتقال و آغاز ردیف جدید .

خوب، و من از توابع پی اچ پی استفاده کردم strtolower () و strtoupper () برای تأیید وجود در پایگاه داده کاربر با شناسه هایی که می توانند در ثبت های مختلف نوشته شوند، زیرا آنها شامل شخصیت ها و اعداد در مورد من بودند.

پی اچ پی فایل در یک آرایه با استفاده از فایل ()

این روش خواندن فایل در پی اچ پی شامل استفاده از تابع است فایل ()که فایل را باز می کند و محتوای آن را به یک آرایه تبدیل می کند. در عین حال، عناصر آرایه، فقط رشته های فایل قابل خواندن است که در وضعیت من کاملا مناسب است.

کد این فایل PHP Parser به شرح زیر است:

پیدا کردن ("منحصر به فرد_id in (: id، id2)"، آرایه (": id" \u003d\u003e strtolower ($ params)، ": id2" \u003d\u003e strtoupper (params params))؛ اگر ($ client) ($ client-\u003e phone \u003d str_replace (آرایه ("\\ r"، "\\ n")، ""، $ params)؛ $ client-\u003e

همانطور که می بینید، راه قبلی برای خواندن فایل در پی اچ پی تنها با آغاز آن متفاوت است، جایی که فایل باز می شود و بلافاصله عملکرد را می خواند فایل () به جای یک بسته نرم افزاری fopen () + fgets ()مثل قدیما.

پی اچ پی خواندن یک فایل به یک متغیر با استفاده از fread ()

یکی دیگر از پی اچ پی تابع برای تجزیه فایل است fread ()با آن شما می توانید قطعات فایل های مختلف از طول مشخص شده را بخوانید. برای خواندن فایل در پی اچ پی، اندازه فایل را با استفاده از تابع به عنوان یک اندازه قطعه مشخص کردم. حجم فایل ():

پیدا کردن ("منحصر به فرد_id in (: id1، id2)"، آرایه (": id1" \u003d\u003e strtolower (params params)، ": id2" \u003d\u003e strtoupper ($ params))؛ اگر ($ client) ($ client-\u003e phone \u003d str_replace (آرایه (\\ r "،" \\ n ")،" "، $ params)؛ $ client-\u003e ذخیره ()؛)))))))))))))))))))))))))))) فایل نام فایل را بررسی کنید، فایل "t وجود دارد!"؛)

این روش خواندن ابزار فایل پی اچ پی، در واقع، بسیار شبیه به یک قبلی است، زیرا، با وجود این واقعیت که با کمک داده های PHP از فایل در ابتدا در یک آرایه خوانده نمی شود، اما در یک متغیر رشته، سپس هنوز هم به یک آرایه تبدیل شده است کار با او آسان تر از یک رشته کار می کند.

تبدیل رشته به یک آرایه به پی اچ پی ساده ترین راه برای انجام توابع مورد استفاده در حال حاضر از انفجار ()، به عنوان یک جدا کننده است که در آن نماد ردیف شروع شد.

تجزیه PHP فایل تجزیه کننده بر اساس file_get_contents ()

خوب، و در نهایت، تصمیم گرفتم فایل PHP را با استفاده از تابع اجرا کنم file_get_contents ()، که فقط طراحی شده برای خواندن فایل به طور کامل در رشته، به عنوان مثال کار می کند، عملا چگونه fread ($ FP، فایل ها ($ filename)).

بیش از تنها استثناء که file_get_contents () به طور مستقل فایل را باز می کند و آن را می خواند، در حالی که برای استفاده از Fread () لازم بود که ابتدا فایل را از طریق fopen باز کنید () و اشارهگر آن را برای استفاده بیشتر دریافت کنید.

به طور کلی، کد PHP فایل Parser در file_get_contents () عملا به عنوان در مورد قبلی خواهد بود:

پیدا کردن ("منحصر به فرد_id in (: id1، id2)"، آرایه (": id1" \u003d\u003e strtolower (params params)، ": id2" \u003d\u003e strtoupper ($ params))؛ اگر ($ client) ($ client-\u003e phone \u003d str_replace (آرایه (\\ r "،" \\ n ")،" "، $ params)؛ $ client-\u003e ذخیره ()؛)))))))))))))))))))))))))))) فایل نام فایل را بررسی کنید، فایل "t وجود دارد!"؛)

این همه است وقت آن است که عملکرد تمام گزینه های فوق را خلاصه کنیم و پیدا کنیم که کدام فایل PHP Parser برای استفاده بیشتر مطلوب بود.

چه روش پردازش فایل ها در پی اچ پی مطلوب است؟

انتخاب از گزینه ها بهینه ترین، I.E. سریعترین، من تصمیم گرفتم در هر مورد تعیین کنم. برای انجام این کار، از روش شناسی شرح داده شده در مقاله در لینک استفاده کردم.

توابع خواندن فایل پی اچ پی پی اچ پی به اندازه کافی پایدار هستند، بنابراین برای رسیدن به حداقل برخی از رقم های بیشتر یا کمتر از کار خود، من به طور خاص در قطعات تست با عملیات پایگاه داده باقی مانده است، که در همه موارد یکسان بود.

زمان اسکریپت پی اچ پی، من همچنین تصمیم گرفتم برای راحتی به علامت سوم پس از کاما، به عنوان مثال تا هزارم ثانیه از ثانیه (هر چند، ممکن بود هر دو صد ها را محدود، در واقع).

من به یاد می آورم زمانی که در مدرسه تحصیل کرده ام و کار علمی خود را بر روی فیزیک نوشتم (بله، چنین تجربه ای وجود داشت) در حمایت از آن، قبل از اینکه معلمان دانشگاه به طور مداوم برای تعداد کافی از آزمایشات ناکافی بودند (من 3 تجارب برای هر مورد انجام دادم). "لامپهای علم" اعداد را در 100، خوب یا حداقل در 10 آزمایش به منظور مقایسه موقعیت های مختلف به طوری که آنها می توانند نوعی مقایسه و به حداقل رساندن احتمال برتری تصادفی یکی از آنها را به حداقل برسانند.

بله، من آن را به طور قاطعانه، اما توصیه های آنها به خوبی یاد گرفتم که حتی این را به یاد می آورم، هرچند بیش از 10 سال از آن زمان گذشت. علاوه بر این، این توصیه ها بر اساس قوانین آمار ریاضی و نظریه احتمالی بود.

خوب، من تظاهر نمی کنم که آزمایش های فعلی من در این مقاله را در نظر بگیرم، بنابراین، من در نظر داشتم که تعداد 100 آزمایش بیش از حد بزرگ است و روند برگزاری آنها خیلی خسته کننده است.

به عنوان یک نتیجه، من تصمیم گرفتم که خود را به 10 آزمایش برای هر گزینه پی اچ پی فایل PHP محدود کنم، که به اندازه کافی به اندازه کافی برای برجسته کردن یک رهبر صریح بدون حقایق خسته کننده و قلاب برای صد ها و هزارم ثانیه دوم برتر است.

نتایج عملکرد زمان کار توسعه یافته توسط فایل های فایل پی اچ پی در جدول زیر ارائه شده و مرتب شده بر اساس توابع پی اچ پی بر اساس آن کار می کنند.

ازمایش fgets () فایل () fread () file_get_contents ()
1 9,147 9,722 10,539 2,008
2 8,950 9,006 9,495 1,733
3 8,821 8,845 9,207 1,642
4 8,717 8,876 8,931 1,758
5 9,010 9,091 8,703 1,635
6 9,110 8,640 9,712 1,633
7 9,074 9,626 9,13 1,645
8 8,886 9,204 9,048 1,701
9 8,667 8,918 9,438 1,713
10 8,852 9,197 9,537 1,567
میانگین 8,923 9,113 9,374 1,704

همانطور که می بینید، علاوه بر مقادیر زمان اجرا اسکریپت در هر یک از 10 آزمایش، تصمیم گرفتم که دمای متوسط \u200b\u200bدر بیمارستان را محاسبه کنم

یعنی میانگین زمان محاسبات هر PARSER PHP به طوری که رهبر می تواند شناسایی شود.

و آنها معلوم شد، همانطور که می بینید، آخرین گزینه اجرا شده بر اساس تابع file_get_contents ()که محتویات فایل را به یک متغیر رشته با تبدیل بیشتر آن به یک آرایه و پردازش در چرخه می خواند.

تمام فایل های فایل پی اچ پی دیگر تقریبا با همان سرعت عمل می کنند.

چرا او رقبای خود را از بین برد، من صادقانه، من هیچ نظری ندارم. من فقط می توانم فرض کنم که عملیات خواندن فایل در رشته با استفاده از file_get_contents () نیاز به منابع کمتر از تشکیل یک آرایه ردیف به پایان رسید فایل ().

برتری بیش از FGETS () و FREAD () می تواند نوشته شود که شما باید فایل را با استفاده از fopen () که طول می کشد باز کنید.

بله، در واقع، مهم نیست، زیرا اعداد برای خود صحبت می کنند: به لطف استفاده از تابع file_get_contents () PHP File Parser در پایه آن 5 برابر سریعتر از بقیه کار می کند، که بر تصمیم من برای استفاده از آن در عمل تاثیر گذاشت.

تجزیه و تحلیل فایل پی اچ پی - نتیجه گیری

همانطور که قبلا در ابتدا صحبت کردم، آزمایشات من بی عیب و نقص نیستند و تنها بر اساس نتایج حاصل شده در دوره خود، ارزش آن را ندارند، زیرا، با وجود سرعت file_get_contents () در وضعیت من، مواردی وجود دارد که بسیار راحت تر و کارآمدتر برای استفاده از سایر پرونده های PHP استفاده می شود.

علاوه بر این، نباید فراموش کنید که PHP خود یک زبان همزمان برنامه نویسی است، I.E. تمام عملیات سرور به طور مداوم بدون توانایی پیکربندی اجرای موازی خود، از جمله هسته های پردازنده های مختلف سرور رخ می دهد.

در نتیجه، در زمان انجام عملیات تجویز شده در کد پی اچ پی، تعدادی از عوامل می تواند بر جریان اصلی عوامل تأثیر بگذارد، که در آن بار بار هسته در زمان برنامه PHP نگهداری می شود.

من به خصوص در طول آزمایشات زمانی که یک فایل PHP همان PHP برای 9، سپس برای 12، و سپس در 9 ثانیه در سه تکرار متوالی به دلیل اجرای مولد ویندوز اکسپلورر در طول مورد دوم کار کرد، که به طور طبیعی، به طور طبیعی، نیاز به سرور دارد منابع.

با توجه به این ویژگی ها، من آزمایشات تقریبا همزمان، یکدیگر را انجام دادم، با همان مجموعه ای از برنامه های در حال اجرا، به طوری که برای اسپری منابع سرور آهن نیست.

بنابراین، در آینده، هنگام انجام چنین آزمایش هایی با طرح های PHP، به همان شیوه عمل می کند، زیرا این اساسا تنها راه به آزمایشات به شرایط برابر است.

اگر شما با زبان های سرور ناهمزمان (C #، Java) یا فن آوری ها (node.js، به عنوان مثال) کار می کنید، سپس، در صورت امکان، یک جریان جداگانه برای آزمایش هایی ایجاد کنید که بر روی هسته پردازنده برجسته کار می کنند.

خوب، و اگر شما یک هسته کاملا استفاده نشده را پیدا کنید، کار نمی کند (که در سطح نرم افزار مدرن تعجب آور نیست)، حداقل شما می توانید ضعیف ترین بار بارگذاری شده یا حداقل، با یک بار استاتیک که نمی کند پیدا کنید تغییر در زمان

جمع کردن، من می خواهم بگویم که قطعات کد داده شده در مقاله می تواند نه تنها برای تجزیه فایل های متنی در PHP استفاده شود، بلکه کاملا مناسب برای فرمت های دیگر، به عنوان مثال، برای تجزیه فایل های CSV مناسب است.

بازخورد خود را به عنوان مثبت و منفی در نظرات تحت مقاله بنویسید - من نیاز به هر یک از نظرات شما برای توسعه بیشتر. 🙂

به جلسات جدید! 🙂

P.S.: اگر به یک وب سایت نیاز دارید یا نیاز به ویرایش به یک موجود دارید، اما برای این هیچ وقت و تمایل وجود ندارد، می توانم خدمات خود را ارائه دهم.

بیش از 5 سال تجربه توسعه سایت حرفه ای. کار با پی اچ پی, opencart, وردپرس, لاروول, یی, mysql, postgresql, جاوا اسکریپت, واکنش نشان دادن, زاویه دار و دیگر فن آوری های توسعه وب.

تجربه در توسعه پروژه های مختلف: فرود آمدن, سایت های شرکتی, فروشگاه های آنلاین, CRM, پورتال. از جمله پشتیبانی و توسعه پروژه های حمل و نقل. درخواست های خود را برای ایمیل ارسال کنید [ایمیل محافظت شده].

ردیف ها - نوع بسیار مهم داده هایی که باید در هنگام حل وظایف توسعه وب به طور مداوم کار کنید. این مقاله 10 تکنیک بسیار مفیدی را توصیف می کند که عمر پی اچ پی توسعه دهنده را آسان تر می کند.

حذف خودکار برچسب های HTML از خط

هنگام استفاده از فرم های پر شده توسط کاربر، گاهی اوقات شما باید تمام برچسب های اضافی را حذف کنید. این کار به راحتی با استفاده از تابع Strip_Tags () حل می شود:

$ text \u003d strip_tags ($ input، ")؛

ما متن را بین $ START و $ END دریافت می کنیم

این تابع باید در آرسنال توسعه دهنده باشد: رشته اصلی، شروع و پایان می شود و متن را که بین $ شروع و به پایان می رسد، باز می گرداند.

تابع getbetween ($ $ start، $ ed) ($ r \u003d Explode ($ start، $ content)؛ اگر (isset ($ r)) ($ r \u003d explode ($ end، $ r)؛ بازگشت $ r؛ ) برگشت ""؛)

URL تبدیل در لینک

اگر URL را در فرم نظر در وردپرس قرار دهید، به طور خودکار به لینک تبدیل می شود. اگر میخواهید همان قابلیت را در وب سایت خود یا در یک برنامه وب اجرا کنید، می توانید از کد زیر استفاده کنید:

$ url \u003d "Jean-Baptiste Jung (http://www.webdevcat.com)"؛ $ url \u003d preg_replace ("#http: // (+) #"، "، $ URL)؛

متن جداگانه در 140 آرایه نماد برای توییتر

شاید شما این را بدانید توییتر. پیام های بیش از 140 کاراکتر را قبول می کند. اگر قصد دارید تعامل برنامه خود را با یک پیام اجتماعی محبوب پیام ها سازماندهی کنید، پس از آن یک تابع که پیام ها را تا 140 کاراکتر کاهش می دهد، احتمالا به حیاط می روید.

تابع split_to_chunks ($ to، $ text) ($ total_length \u003d (140 - strlen ($ to))؛ $ text_arr \u003d explode (""، $ text)؛ $ I \u003d 0؛ $ message \u003d ""؛ foreach ($ text_arr به عنوان $ word) (اگر (strlen ($ پیام [$ i]. $ word "")<= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }

URL را از خط حذف کنید

بسیاری از مردم در URL نظر وبلاگ ترک می کنند تا ترافیک یا سازماندهی بازخورد را سازماندهی کنند. چنین لینک هایی این وبلاگ را آلوده می کند و می تواند اختلالات مالک را در صورتی که مقدار زیادی آنها باشد، ایجاد کند. بنابراین عملکرد بعدی بسیار مفید خواهد بود!

$ string \u003d preg_replace ("/ \\ b (https؟ | ftp | fip): \\ / / / / [ [ایمیل محافظت شده]# \\ /٪؟ \u003d ~ _ | $!: ،؛؛] * / من "،"، $ رشته)؛

ما رشته را به رطوبت تبدیل می کنیم

نیاز به تولید رطوبت (برای لینک دائمی)، که با وظایف SEO سازگار است؟ ویژگی زیر یک رشته به عنوان یک پارامتر طول می کشد و وظایف SEO سازگار سازگار را باز می کند. فقط و به طور موثر!

عملکرد Slug ($ str) ($ str \u003d strtolower (trim (trim ($ str))؛ $ str \u003d preg_replace ("/ [^ a-z0-9 -] /"، "-"، $ st)؛ $ str \u003d preg_replace ("/ - + /"، "-"، $ str)؛ بازگشت $ str؛)

فایل Parsing فایل CSV

CSV (COMA ارزش های جدا شده - ارزش های فروش) فایل ها - یک راه آسان برای ذخیره و انتقال داده ها، و تجزیه این فایل ها در پی اچ پی بسیار ساده انجام می شود. باور نکن؟ کد زیر نشان می دهد پردازش فایل CSV:

$ fh \u003d fopen ("contacts.csv"، "r")؛ در حالی که ($ line \u003d fgetcsv ($ fh، 1000، "،") (echo "تماس: ($ خط)"؛)

جستجوی خط در خط دیگری

اگر رشته در خط دیگری قرار دارد و شما باید آن را پیدا کنید، سپس این کار به سادگی حل می شود:

تابع شامل ($ str، $ محتوا، $ ignorecase \u003d true) (اگر ($ ignorecase) ($ strtolower) ($ strtolower ($ str)؛ $ content \u003d strtolower ($ content)؛) strps بازگشت ($ content، $ str)؟ درست غلط؛)

بررسی کنید که رشته با یک قالب خاص شروع می شود

برخی از زبان های برنامه نویسی مانند جاوا، یک روش شروع دارند که به شما اجازه می دهد تا بررسی کنید که آیا یک رشته از یک قالب خاص شروع می شود. متأسفانه، پی اچ پی چنین عملکرد ساده ای را ندارد.
با این وجود، ما می توانیم آن را برای خودمان، و بسیار ساده ::

تابع string_begins_with ($ سوزن، $ haystack) (بازگشت (Subster ($ haystack، 0، strlen ($ سوزن)) \u003d\u003d $ سوزن)؛)

تخصیص دادنایمیل از رشته

آیا تا به حال فکر کرده اید که اسپم ها آدرس های ایمیل خود را دریافت می کنند؟ همه چیز ساده است آنها یک صفحه وب (به عنوان مثال از انجمن) را می گیرند و کد HTML را تجزیه می کنند تا آدرس های ایمیل را برجسته کنند. در زیر، کد داده شده یک رشته را به عنوان یک پارامتر دریافت می کند و تمام ایمیل هایی را که در آن موجود است، چاپ می کند. لطفا از این کد برای هرزنامه استفاده نکنید!

عملکرد Extract_emplys (/ / / / / عبارت منظم که تمام ایمیل ها را از خط خارج می کند: $ regexp \u003d "/ () \\ @ ((() + \\. \\ + ((2،4000) + /"؛ preg_match_all ($ regexp، $ str، $ m)؛ بازگشت isset ($ m)؟ $ m: array ()؛) $ test_string \u003d "رشته تست ... [ایمیل محافظت شده] فرمت های دیگر را بررسی کنید: [ایمیل محافظت شده]؛ فووبار بررسی بیشتر: [ایمیل محافظت شده] test6example.org. [ایمیل محافظت شده] [ایمیل محافظت شده] example.org [ایمیل محافظت شده]! foo! .org foobar "؛ print_r (extract_emails ($ test_string))؛

قبل از هر ترجمه ردیف، کد شکستن رشته HTML را وارد کنید

  • number_format - شماره را با تقسیم گروه ها فرمت می کند
  • oRD - کد نماد ASCII را باز می گرداند
  • parse_str - رشته را به متغیرها تقسیم می کند
  • چاپ - یک رشته را نمایش می دهد
  • printf
  • qUOTED_PRINTABLE_DECODE - رمزگشایی یک رشته کدگذاری شده توسط روش نقل قول قابل چاپ
  • quotemeta - نمادهای ویژه صفحه نمایش
  • rTRIM - فضاهای را از انتهای خط حذف می کند
  • sha1 - RETURS SHA1 HASH ROW
  • sha1_file - فایل sha1 hash را باز می گرداند
  • samply_text - درجه دو خط مشابه را محاسبه می کند
  • soundex - کلید Soundex را برای رشته باز می گرداند
  • sprintf
  • sSCANF - رشته را مطابق با فرمت مشخص شده جدا می کند
  • strcasecmp - مقایسه خطوط بدون ثبت نام، امن برای داده ها در فرم باینری
  • strcmp - مقایسه ردیف امن برای داده های باینری
  • strcoll - مقایسه ردیف ها با زبان فعلی
  • strcspn - طول سایت را در ابتدای رشته ای که ماسک را مطابقت نمی دهد، باز می گرداند
  • stripCSlashes - نمایش غربالگری نمادهای تولید شده توسط ویژگی AddCSlashes () را حذف می کند
  • stripos - موقعیت اولین زیربنای ورودی را بدون ثبت نام باز می گرداند
  • stripslashes - محافظت از محافظ شخصیت های تولید شده توسط تابع AddsLashes () را حذف می کند
  • strip_tags - برچسب های HTML و PHP را از رشته حذف می کند
  • sTRIST - آنالوگ تابع Strest، اما مستقل از ثبت نام
  • strlen - طول خط را باز می گرداند
  • strnatcasecmp - مقایسه خطوط به استثنای ثبت نام با استفاده از الگوریتم
  • strnatcmp - مقایسه ردیف ها با استفاده از الگوریتم "طبیعی سفارش"
  • strncasecmp
  • strncmp - مقایسه اولین کاراکترهای N خط بدون ثبت نام، برای داده ها در فرم باینری امن است
  • strPOS - اولین ورودی Substring را در رشته پیدا می کند
  • strrchr
  • strev - رشته را تبدیل می کند
  • stripos - موقعیت آخرین بستر ورودی را بدون ثبت نام باز می گرداند
  • strRPOS - آخرین ورودی شخصیت را در رشته پیدا می کند
  • strspn - طول سایت را در ابتدای خط مطابق با ماسک قرار می دهد
  • ststr - اولین ورودی Substring را پیدا می کند
  • strtok - رشته را از بین می برد
  • strtolower - یک رشته را به حروف کوچک تبدیل می کند
  • strtoupper - یک رشته را به ثبت نام تبدیل می کند
  • strtr - شخصیت های مشخص شده را تبدیل می کند
  • str_ireplace یک نسخه مستقل از تابع str_replace () است.
  • str_pad - رشته را با یک خط دیگر به یک طول داده شده تکمیل می کند
  • str_repeat - یک رشته تکراری را باز می گرداند
  • str_replace - جایگزین رشته جستجو در رشته جایگزینی می شود
  • str_rot13 - بر روی رشته تبدیل ROT13 انجام می شود
  • str_Shuffle - متناسب با شخصیت های رشته
  • str_split - یک رشته را به یک آرایه تبدیل می کند
  • str_word_count - اطلاعات مربوط به کلمات موجود در رشته را باز می گرداند
  • substr - عملکرد بخشی از خط را باز می گرداند
  • substr_Count - شمارش تعداد نوشته ها را در رشته شمارش می کند
  • substr_replace - جایگزین بخشی از رشته می شود
  • tRIM - فضاهای را از ابتدا و انتهای خط حذف می کند
  • uCFIRST - اولین نماد رشته را به ثبت نام بالا تبدیل می کند
  • uCWords - اولین نماد هر کلمه را به ثبت نام بالا در ردیف تبدیل می کند
  • vprintf - یک رشته فرمت شده را نمایش می دهد
  • vsprintf - یک رشته فرمت شده را باز می کند
  • wordWrap - یک خط رشته را بر روی این تعداد شخصیت ها با استفاده از نماد شکستن رشته انجام می دهد
  • ویژگی های اپراتورهای مقایسه در رابطه با ردیف.

    $ one \u003d 1؛ // شماره یک. $ صفر \u003d 0؛ // تعداد صفر را اختصاص دهید. اگر ($ one \u003d\u003d "") echo 1؛ // بدیهی است، آن برابر نیست - خروجی 1. اگر ($ صفر \u003d\u003d "") echo 2؛ // توجه! بر خلاف انتظارات چاپ 2! اگر ("" \u003d\u003d $ صفر) Echo 3؛ // * و این نیز کمک نمی کند - چاپ! .. اگر ("$ صفر" \u003d\u003d "") echo 4؛ // درست است. اگر (strval ($ صفر) \u003d\u003d "") echo 5؛ // همچنین به درستی - خروجی 5. اگر ($ صفر \u003d\u003d\u003d "") echo 6؛ // بهترین راه، اما در PHP 3 معتبر نیست.

    تکه کردن ()

    تابع Chop () پس از حذف گذر نهایی و نمادهای خط جدید از آن، رشته را باز می کند. CHOP () نحو عملکرد:

    رشته رشته (رشته رشته)

    در مثال زیر، تابع CHOP () نمادهای غیر ضروری رشته جدید را حذف می کند:

    $ header \u003d "جدول محتویات \\ n \\ n"؛ $ header \u003d chop ($ header)؛ // $ header \u003d "جدول محتویات"

    str_pad ()

    تابع str_pad () رشته را به طول مشخصی از کاراکترهای مشخص مشخص می کند و رشته فرمت شده را باز می گرداند. تابع syntax str_pad ():

    رشته str_pad (رشته ردیف، int طول _dill [، رشته مکمل [، int type_dill]]

    اگر پارامتر اضافی اختیاری مشخص نشده باشد، رشته توسط فضاهای تکمیل شده است. در غیر این صورت، رشته توسط شخصیت های مشخص شده تکمیل می شود. به طور پیش فرض، رشته به سمت راست تکمیل می شود؛ با این وجود، شما می توانید در Parameter_Dill نوع ثابت Str_Pad_Right، Str_Pad_left یا Str_Pad_Both ارسال کنید، که به ردیف اضافه می شود تا یک ردیف اضافه شود. یک مثال علاوه بر رشته علاوه بر تابع str_pad () را با پارامترهای پیش فرض نشان می دهد:

    $ food \u003d "سالاد"؛ print str_pad ($ food، 5): // "رشته سالاد را در مثال زیر نشان می دهد، پارامترهای اختیاری تابع str_pad () استفاده می شود: $ header \u003d" جدول محتویات "؛ print str_pad ($ header، 5، 5 \u003d + \u003d + \u003d "، str_pad_both)؛ // مرورگر یک رشته \u003d + \u003d + \u003d tab از محتویات را نشان می دهد \u003d + \u003d + \u003d"

    تر و تمیز ()

    تابع Trim () PSS را از هر دو لبه رشته حذف می کند و رشته حاصل را به دست می آورد. TRIM () نحو عملکرد:

    رشته ترمینال (رشته کشور)

    کاراکترهای ویژه \\ n، \\ r، \\ t، \\ v و \\ 0 نیز توسط Passages جدا شده اند.

    ltrim ()

    تابع LRIM () تمامی پرش و کاراکترهای ویژه را از لبه سمت چپ رشته حذف می کند و رشته حاصل را به دست می آورد. LTRIM SYNTAX ():

    رشته LTRIM (ردیف رشته)

    این تابع همان کاراکترهای خاص را به عنوان تابع Trim () حذف می کند.

    strlen ()

    تعیین طول خط

    طول رشته در کاراکترها را می توان با استفاده از تابع Strlen () تعریف کرد. نحو توابع Strlen ():

    iNT Strlen (رشته رشته)

    مثال زیر تعریف طول رشته ای از تابع Strlen () را نشان می دهد:

    $ string \u003d "سلام"؛ $ طول \u003d Strlen ($ string)؛ // $ طول \u003d 5

    مقایسه دو ردیف

    مقایسه دو ردیف متعلق به تعداد عملیات رشته اصلی هر زبان است. اگر چه این کار را می توان به روش های مختلف حل کرد، چهار توابع مقایسه توابع در PNR وجود دارد:

    strcmp ()

    تابع STRCMP () دو خط را با توجه به ثبت نام نماد مقایسه می کند. STRCMP () Syntax تابع: int strcmp (رشته خط 1، رشته رشته 2)

    پس از اتمام مقایسه، strcmp () یکی از سه مقدار ممکن را بازمی گرداند:

    • 0، اگر ROW11 و Line2 Match؛
    • < 0, если строка1 меньше, чем строка2;
    • \u003e 0، اگر ROW2 کمتر از رشته 1 باشد.

    $ sthng1 \u003d "کره"؛ $ string2 \u003d "کره"؛ اگر ((strcmp (string1 $ string2 $ string2)) \u003d\u003d 0): چاپ "رشته ها معادل هستند!"؛ endif؛ // اگر دستور درست می شود درست است

    strcasecmp ()

    تابع strcasecmp () به همان شیوه به عنوان strcmp ()، در یک استثنا، کار می کند، ثبت نام نماد در مقایسه نیست. STRCASECMP () نحو عملکرد:

    int strcasecmp (رشته رشته 1، رشته رشته 2)

    قطعه زیر دو خط یکسان را مقایسه می کند:

    $ string1 \u003d "کره"؛ $ string2 \u003d "کره"؛ اگر ((strcmp ($ string1، $ string2)) \u003d\u003d 0): چاپ "رشته ها معادل هستند!"؛ endif؛ // اگر دستور درست می شود درست است

    strspn ()

    تابع strspn () طول اولین بخش اول رشته 1 را شامل می شود که حاوی کاراکترهای موجود در رشته 2 است. Syntax تابع strspn ():

    int strspn (رشته رشته 1، رشته رشته 2)

    قطعه زیر نشان می دهد که چگونه تابع strspn () برای بررسی رمز عبور استفاده می شود:

    $ password \u003d "12345"؛ اگر (strspn ($ رمز عبور، 1234567890 ")! \u003d strlen ($ رمز عبور)): چاپ" رمز عبور نمی تواند تنها از اعداد تشکیل شود! "؛ endif:

    strcspn ()

    تابع strcspn () طول اولین رشته رشته را که حاوی کاراکترهایی است که در رشته 2 از دست رفته اند، باز می گرداند. STRCSPN () نحو عملکرد:

    int strcspn (رشته رشته 1، رشته رشته 2)

    در قسمت زیر، تابع strcspn () برای بررسی رمز عبور استفاده می شود:

    $ password \u003d "12345"؛ اگر (strcspn ($ رمز عبور "، 1234567890") \u003d\u003d 0): چاپ "رمز عبور نمی تواند تنها از اعداد تشکیل شود!"؛ endif؛

    پردازش داده رشته بدون عبارات منظم

    هنگام پردازش مقادیر زیادی از اطلاعات، عملکردهای منظم بیان به شدت کاهش اجرای برنامه را کاهش می دهد. این توابع باید تنها در هنگام پردازش خطوط نسبتا پیچیده ای که در آن عبارات منظم واقعا لازم باشد، اعمال شود. اگر تجزیه و تحلیل متن با قوانین نسبتا ساده انجام شود، می توانید از توابع استاندارد RNR استفاده کنید که به طور قابل توجهی پردازش را تسریع می کنند. همه این توابع در زیر شرح داده شده است.

    strtok ()

    تابع strtok () رشته را بر روی Lexemes توسط جداکنندگان مشخص شده توسط پارامتر دوم شکست می دهد. Syntax Strtok () تابع:

    string Strtok (رشته رشته، تقسیم رشته ها)

    تابع strtok () دارای یک عجیب و غریب است: به طور کامل رشته را تقسیم کنید، عملکرد باید چندین بار به طور پیوسته نامیده شود. با تماس بعدی، تابع LEX بعدی را از خط اختصاص می دهد. در این مورد، پارامتر رشته تنها یک بار تنظیم می شود - تابع موقعیت فعلی را در ردیف آهنگ می کند تا زمانی که رشته به طور کامل بر روی Lexemes جدا شود یا پارامتر رشته جدید مشخص نخواهد شد. مثال زیر نشان می دهد تقسیم رشته در چندین جداساز:

    $ info \u003d "wj gi1more: [ایمیل محافظت شده] | کلمبوس، اوهایو "؛ // محدود کننده ها - colon (:)، صفات عمودی (|) و کاما (.) $ tokens \u003d": \u200b\u200b|، "$ tokenized \u003d strtok ($ info، $ tokens)؛ // حذف عناصر آرایه $ tokenized در حالی که ($ tokenized): echo "عنصر \u003d $ tokenized
    "؛ // لطفا توجه داشته باشید: با تماس های Strtok بعدی // استدلال اول به $ tokenized منتقل نمی شود \u003d strtok ($ tokens)؛ در نهایت نتیجه: عنصر \u003d عنصر wjgilmore \u003d [ایمیل محافظت شده] عنصر \u003d عنصر کلمبوس \u003d اوهایو

    parse_str ()

    ویژگی parse_str () نشانگر جفت در رشته است و مقادیر متغیرها را در محدوده فعلی اختصاص می دهد. parse_str () نحو عملکرد:

    void parse_str (ردیف رشته)

    تابع parse_str () به ویژه در هنگام پردازش URL های حاوی فرم های HTML یا سایر اطلاعات پیشرفته مناسب است. مثال زیر اطلاعاتی را که از طریق URL منتقل می شود را تجزیه و تحلیل می کند. رشته یک روش استاندارد انتقال داده ها بین صفحات یا کامپایل شده در یک لینک یا وارد شده در فرم HTML است:

    $ url \u003d "fname \u003d wj & lname \u003d gilmore & zip \u003d 43210" parse_str (url $)؛ // پس از اجرای parse_str () متغیرهای زیر در دسترس هستند: // $ fname \u003d "WJ": // $ lname \u003d "gilmore"؛ // $ zip \u003d "43210"

    از آنجا که این ویژگی برای کار با URL ایجاد شده است، نماد آمپرس را نادیده می گیرد (&).

    انفجار ()

    تابع Explode () خط را به موارد به اشتراک می گذارد و این عناصر را به عنوان یک آرایه باز می گرداند. توابع نحو منفجر می شوند ():

    آرایه منفجر شده (تقسیم رشته، رشته رشته [، threshold int])

    پارتیشن برای هر نمونه از جداساز رخ می دهد و تعداد قطعات به دست آمده ممکن است محدود به پارامتر اختیاری آستانه باشد.

    تابع رشته تقسیم شده منفجر می شود () در مثال زیر نشان داده شده است:

    $ info \u003d "wilson | بیس بال | سرخپوستان"؛ $ user \u003d Explode ("|"، $ info)؛ // $ user \u003d "wilson"؛ // $ user \u003d "baseball"؛ // $ user \u003d "سرخپوستان"؛

    تابع Explode () () تقریبا یکسان است با توابع عبارات منظم POSIX () بیان شده در بالا. تفاوت اصلی این است که انتقال عبارات منظم در پارامترها تنها زمانی مجاز به تماس می شود ().

    uncode ()

    اگر تابع Explode () خط را به عناصر آرایه به اشتراک بگذارد، پس از آن دوقلو آن تابع uncode () است - ترکیبی از آرایه به رشته است. توابع Syntax Implode ():

    رشته (جداساز رشته، قطعات آرایه)

    شکل گیری ردیف آرایه در مثال زیر نشان داده شده است:

    $ ohio_cities \u003d آرایه ("کلمبوس"، "Youngstown"، "Cleveland"، "Cincinnati")؛ $ city_string \u003d uncode ("l"، $ ohio_cities)؛ // $ city_string \u003d "columbus | youngstown | کلیولند | سینسیناتی"؛

    Implede () دارای یک نام مستعار است - تابع پیوستن ().

    strs ()

    تابع strs () اولین نمونه از بستر مشخص شده در رشته را پیدا می کند. STRPOS () نحو عملکرد:

    intpos intps (رشته رشته، رشته رشته [، int offset])

    پارامتر Offset اختیاری موقعیتی را تنظیم می کند که جستجو باید آغاز شود. اگر Substring یافت نشد، strps () False (0) را بازمی گرداند.

    مثال زیر موقعیت اولین ورود تاریخ را به پرونده ورود به سیستم تعریف می کند:

    $ log \u003d "206.169.23.11:/www/": 29-08-10 206.169.23.11:/www/logs/ ": 29-02-04 206.169.23.11:/www/img/: 999-01-31" ؛ // در چه موقعیتی در مجله اولین بار در سال 1999 مطابقت دارد؟ $ pos \u003d strPOS ($ log، 1999))؛ // $ pos \u003d 95. از آنجا که اولین نمونه "1999" // در موقعیت 95 خط موجود در متغیر $ log است

    strRPOS ()

    تابع strRPOS () آخرین نمونه از نماد مشخص شده در رشته را پیدا می کند. STRRPOS () نحو عملکرد:

    intpos strps (رشته رشته، نماد چار)

    با امکانات، این تابع به دوقلو خود را پایین تر می کند - توابع strPOS ()، از آنجایی که به شما اجازه می دهد فقط یک شخصیت جداگانه را جستجو کنید، نه کل خط. اگر یک رشته در پارامتر دوم STRRPUS () ارسال شود، تنها اولین کاراکتر آن هنگام جستجو استفاده می شود.

    str_replace ()

    تابع str_replace () به دنبال تمام ورودی های زیر رشته ای در رشته است و آنها را با یک سوپاپ جدید جایگزین می کند. نحو تابع str_replace ():

    رشته str_replace (رشته رشته، جایگزینی رشته، ردیف رشته)

    تابع substr_replace () شرح داده شده در زیر در این بخش به شما امکان می دهد تا فشار را فقط در یک بخش مشخص از خط صرف کنید. در زیر نشان داده شده است به عنوان تابع str_replace () برای انجام جایگزینی جهانی در رشته استفاده می شود.

    اگر Substring هرگز در رشته یافت نشد، خط منبع تغییر نمی کند:

    $ favorited_food \u003d "غذاهای مورد علاقه من بستنی و بال مرغ هستند"؛ $ favorited_food \u003d str_replace ("Chicken_wings"، "پیتزا"، $ favohte_food)؛ // $ مورد علاقه favor_food \u003d "غذاهای مورد علاقه من بستنی و پیتزا هستند"

    ststr ()

    تابع StSTR () بخشی از رشته را از اولین ورودی زیرزمینی مشخص می کند. STSTRST () نحو عملکرد:

    رشته رشته (رشته رشته، رشته رشته)

    در مثال زیر، تابع StSTR () برای برجسته کردن نام دامنه از URL استفاده می شود:

    $ url \u003d "http://www.apress.com"؛ $ دامنه - Ststr ($ URL، ".")؛ // $ domain \u003d ".apress.com"

    substr ()

    تابع Substr () بخشی از رشته را از یک موقعیت اولیه داده شده شروع می کند و دارای طول داده شده است. تابع Syntax Substr ():

    substr String (رشته رشته، INT شروع [، ent طول])

    اگر پارامتر اختیاری مشخص نشده باشد، اعتقاد بر این است که Substring با یک موقعیت اولیه داده شده شروع می شود و تا پایان ردیف ادامه می یابد. هنگام استفاده از این ویژگی، باید چهار شرایط را در نظر بگیرید:

    • اگر پارامتر شروع مثبت باشد، بستر بازگشتی از موقعیت رشته با شماره داده شده شروع می شود؛
    • اگر پارامتر شروع منفی باشد، بستر بازگشتی در موقعیت شروع می شود (طول رشته - آغاز)؛
    • اگر پارامتر طول مثبت باشد، تمام نمادها از موقعیت شروع به شروع موقعیت شروع + طول در بستر بازگشتی گنجانده شده است. اگر آخرین مقدار بیش از طول رشته باشد، شخصیت ها به انتهای خط بازگشته اند؛
    • اگر پارامتر طول منفی باشد، زیرمجموعه بازگشتی در یک فاصله مشخص از انتهای خط به پایان می رسد.

    به یاد داشته باشید که پارامتر شروع، افست را از نماد خط اول تعیین می کند؛ بنابراین، خط بازگشت در واقع با یک شخصیت با شماره شروع می شود (شروع + 1).

    مثال زیر، انتخاب بخش خط را با تابع Substr () نشان می دهد:

    $ car \u003d "1944 فورد"؛ Smodel \u003d Substr ($ car، 6)؛ // smodel \u003d "فورد"

    مثال با طول پارامتر مثبت:

    $ car \u003d "1944 فورد"؛ $ model \u003d substr ($ car، 0، 4)؛ // $ model \u003d "1944" مثال با یک پارامتر منفی طول: $ car \u003d "1944 ford"؛ $ model \u003d substr ($ car، 2، -5)؛ // $ model \u003d "44"

    substr_Count ()

    تابع substr_count () تعداد ورودی ها را در رشته مشخص شده باز می گرداند. Supstr_Count () Syntax تابع: int substr_Count (رشته رشته، رشته رشته) در مثال زیر، تابع substr_count () تعداد ورودی ها را شمارش می کند: $ TNG_TWIST \u003d "باران به طور عمده در دشت اسپانیا سقوط می کند"؛ $ count \u003d substr_count ($ tng_twist، "ain")؛ // $ count \u003d 4

    substr_replace ()

    تابع subster_replace () بخشی از خط را جایگزین می کند که از یک موقعیت مشخص شروع می شود. اگر طول اختیاری مشخص شود، یک قطعه از یک طول مشخص جایگزین شده است؛ در غیر این صورت، در طول طول کل رشته جایگزین جایگزین می شود. supstr_replace () نحو عملکرد:

    string Substr_replace (ردیف رشته، جایگزینی رشته، INT شروع [، TENT طول])

    گزینه های شروع و طول توسط قوانین خاص تنظیم شده است:

    • اگر پارامتر شروع شود مثبت است، جایگزینی از یک موقعیت مشخص شروع می شود؛
    • اگر شروع پارامتر منفی باشد، جایگزینی از موقعیت شروع می شود (طول رشته - آغاز)؛
    • اگر پارامتر طول مثبت باشد، یک قطعه از یک طول مشخص جایگزین شده است؛
    • اگر پارامتر طول منفی باشد، جایگزینی در موقعیت (طول رشته - طول) تکمیل شده است.

    جایگزینی متن ساده با تابع substr_replace () () در مثال زیر نشان داده شده است:

    $ favs \u003d "" لینک های مورد علاقه "؛ $ name \u003d" alessia "؛ // پارامترها" 0، 0 "به این معنی است که قطعه قابل تعویض شروع می شود // و در موقعیت اول خط به پایان می رسد. $ favs - subster_replace ($ favs ، $ نام 0، 0)؛ چاپ $ favs:

    نتیجه:

    آلسایا لینک های مورد علاقه

    تبدیل ردیف ها و فایل ها به فرمت HTML و بالعکس

    تبدیل یک رشته یا یک فایل کامل به یک فرمت که برای مشاهده در مرورگر وب مناسب است (یا بالعکس) آسان تر از آن است که ممکن است در نگاه اول به نظر برسد. در RNR، توابع خاصی برای این وجود دارد.

    تبدیل متن در HTML

    تبدیل سریع متن ساده به فرمت مرورگر وب یک کار بسیار رایج است. این به شما کمک خواهد کرد تا توابع شرح داده شده در این بخش.

    nl2br ()

    تابع NL2BR () تمام نمادهای ساختارهای HTML معادل خط جدید (\\ n) را جایگزین می کند.

    تابع نحو NL2BR ():

    رشته NL2BR (ردیف رشته)

    نمادهای خط جدید می توانند به عنوان قابل مشاهده باشند (یعنی، به صراحت در رشته گنجانده شده) و نامرئی (به عنوان مثال وارد شده در ویرایشگر). در مثال زیر، رشته متن به فرمت HTML تبدیل می شود با جایگزینی کاراکترها \\ n ردیف ردیف:

    // رشته متن نمایش داده شده در ویرایشگر. $ TEXT_RECIPE \u003d "دستور العمل حزب سس: 1 می تواند گوجه فرنگی ها را بخورد 3 قاشق غذاخوری تازه آب لیمو تازه هم بزنید، سرور سرد است."؛ // تبدیل نمادهای رشته جدید در
    $ H Hin_Recipe \u003d NL2BR ($ TEXT_RECIPE) هنگامی که خروجی $ HTML_RECIPE بعدی است، مرورگر متن زیر را در قالب HTML منتقل می کند: دستور العمل سس حزب:
    1 می تواند گوجه فرنگی را بخورد
    3 قاشق غذاخوری آب لیمو تازه
    هم بزنید، سرور سرد است.

    hTMLEnties ()

    ویژگی HTMLEtities () شخصیت ها را به سازه های HTML معادل تبدیل می کند. ویژگی Syntax HTMLEnties:

    رشته HTMLEtities (رشته رشته)

    مثال زیر، جایگزینی شخصیت های رشته ای را برای نمایش در مرورگر تولید می کند:

    $ user_input \u003d "کتاب آشپزی، تحت عنوان کافه Francaise" هزینه ها

    تابع HTMLEnties () در حال حاضر فقط برای نمادهای کدگذاری ISO-8559-1 (ISO-Latin-1) کار می کند. علاوه بر این، شکاف هایی را در مورد چگونگی انتظار نمی رود.

    htmlspecialchars ()

    تابع HTMLSpecialchars () برخی از کاراکترهای دارای معنای خاصی را در زمینه HTML معادل سازه های HTML جایگزین می کند. نحو تابع HTMLSPecialchars ():

    رشته HTMLSPecialchars (ردیف رشته)

    تابع HTML ویژه Chars () در حال حاضر نمادهای زیر را تبدیل می کند: و تبدیل به &؛ "" تبدیل به "تبدیل به\u003e تبدیل شده است.

    به طور خاص، این ویژگی به شما اجازه می دهد تا از کاربران نشانه گذاری HTML در برنامه های وب تعاملی جلوگیری کنید (به عنوان مثال، در انجمن های الکترونیکی). خطاهای ساخته شده در نشانه گذاری HTML می تواند منجر به این واقعیت شود که کل صفحه به اشتباه شکل می گیرد. با این حال، این کار همچنین یک راه حل کارآمدتر دارد - به طور کامل حذف برچسب ها از تابع رشته Strip_tags ().

    مثال زیر نشان می دهد حذف شخصیت های بالقوه خطرناک با عملکرد HTMLSPecLalchars ():

    $ user_input \u003d "من فقط می توانم" را دریافت کنم از پی اچ پی و این دستور العمل های پخت و پز افسانه! "$ conv_input \u003d htmlspecialchars ($ user_input)؛ // $ conv_input \u003d" من فقط می توانم "t<\u003e از پی اچ پی و آمپر این دستور العمل های پخت و پز افسانه! "

    اگر تابع HTMLSPecialchars () در رابطه با NL2BR استفاده شود، پس از آن باید پس از HTMLSPecialchars () نامیده شود. در غیر این صورت طراحی
    تولید شده توسط Calling NL2BR () به شخصیت های قابل مشاهده تبدیل می شود.

    get_html_translation_table ()

    عملکرد get_html_translation_table () ابزارهای تبدیل متن مناسب را به معادل HTML از تابع get_htrril_translation_table () ارائه می دهد:

    رشته get_html_translation_table (جدول int)

    تابع get_html_translation_table () یکی از دو جداول تبدیل را به دست می آورد (تعریف شده توسط پارامتر جدول) مورد استفاده در کار استاندارد HTMLSPecialchars () و HTMLEnties (). مقدار بازگشت را می توان در ارتباط با یک تابع استاندارد دیگر، StrTR ()، برای تبدیل متن به کد HTML استفاده کرد.

    پارامتر جدول یکی از دو ارزش را می گیرد:

    • html_entities؛
    • html_specialchars.

    در مثال زیر، هنگام تبدیل متن به کد HTML، تابع get_html_translation_table () استفاده می شود:

    $ string \u003d "la pasta e il piatto piu amato in italia"؛ $ translate \u003d get_html_translation_table (html_entities)؛ چاپ StrTR ($ string، $ ترجمه)؛ // کاراکترهای ویژه به طراحی HTML // تبدیل می شوند و به درستی در مرورگر نمایش داده می شوند.

    به هر حال، تابع array_flip () به شما اجازه می دهد تا متن را به HTML در جهت مخالف تبدیل کنید و متن منبع را بازگردانید. فرض کنید که به جای خروجی StrTRTR () منجر به مثال قبلی، ما آن را به متغیر رشته ترجمه $ اختصاص دادیم.

    در مثال زیر، متن منبع توسط تابع array_flip () بازسازی می شود:

    $ translate \u003d array_flip ($ ترجمه)؛ $ translated_string - "La Pasta é Il Piato Piú Amato در ایتالیا"؛ $ original_string \u003d strtrtr ($ translated_string، $ ترجمه)؛ // $ original_string \u003d "la pasta e il piatto piu amato در ایتالیا"؛

    strtr ()

    تابع StrTR () رشته را ترجمه می کند، یعنی تمام کاراکترهای خطی در خط منبع در آن مربوط به گیرنده نمادهای رشته کاراکتر است. STRTR () نحو عملکرد:

    string Str Str (رشته رشته، منبع رشته، گیرنده رشته)

    اگر منبع ردیف و گیرنده دارای طول های مختلف باشد، خط طولانی به اندازه یک خط کوتاه کوتاه می شود.

    یک نحو جایگزین از STRTR () با دو پارامتر وجود دارد. در این مورد، پارامتر دوم شامل یک آرایه وابسته است، کلید های مربوط به زیربناهای جایگزین، و مقادیر - جایگزینی زیربناها. در مثال زیر، تگ های HTML با طرح های XML مانند جایگزین می شوند:

    " => "

    ", "" => "

    ")؛ $ string \u003d"

    امروز در اخبار PHP

    "؛ چاپ StrTR ($ رشته، $ منبع)؛ // یک رشته نمایش داده می شود" امروز در اخبار PHP" ?>

    تبدیل HTML در متن ساده

    گاهی اوقات نیاز به تبدیل فایل در فرمت HTML در متن ساده وجود دارد. توابع شرح داده شده در زیر به شما در حل این کار کمک خواهند کرد.

    strip_tags ()

    تابع Strip_Tags () تمام برچسب های HTML و PHH را از خط حذف می کند، و تنها متن را در آن قرار می دهد. Shart_tags () نحو عملکرد:

    stristing Strip_tags (رشته رشته [، String Sands_tera])

    پارامتر اختیاری parameter_teg اجازه می دهد تا شما را به مشخص کردن برچسب هایی که باید در طول فرآیند حذف حذف شوند.

    در زیر نمونه ای از حذف از تمام تگ های HTML با تابع Strip_Tags () است:

    $ user_input \u003d "من فقط عشق. rnr و. گور دستور العمل! "$ stripted_input \u003d stript_tags ($ user_input)؛ // $ stripted_input \u003d" من فقط دوست دارم پی اچ پی و دستور العمل های لذیذ! "؛

    در مثال زیر، همه حذف نمی شوند، اما فقط برخی از برچسب ها:

    $ input \u003d "من عشق. به. خوردن! "$ strip_input \u003d strip_tags ($ user_input،" ")؛ // $ strip_input \u003d" من دوست دارم خوردن!";

    حذف برچسب ها از متن نیز توسط FGETSS () عملکرد ساخته شده است.

    get_meta_tags ()

    اگر چه تابع get_meta_tags () به طور مستقیم به تبدیل متن مرتبط نیست، تقریبا یک ویژگی بسیار مفید است که باید ذکر شود. نحو تابع get_meta_tags ():

    آرایه get_meta_tags (رشته نام فایل / URL [، int turning on turning])

    تابع get_meta_tags () طراحی شده است تا در فایل تگ HTML جستجو شود.

    متا برچسب ها حاوی اطلاعات صفحه مورد استفاده عمدتا توسط موتورهای جستجو است. این برچسب ها در داخل زوج برچسب ها قرار دارند .... استفاده از تگ های METS در بخش زیر نشان داده شده است (تماس بگیرید example.html، از آنجا که آن را در فهرست 8.2 استفاده می شود): دستور العمل های PHP GET_META_TAGS () تابع به دنبال برچسب ها در برچسب کلمه است، و نام کاربری را حفظ می کند برچسب ها و محتویات آنها در آرایه انجمنی. فهرست 8.2 استفاده از این تابع را به فایل example.html نشان داد. فهرست 8.2 حذف برچسب های متا از فایل های HTML get_meta_tags ()

    $ meta_tags \u003d get_meta_tags ("example.html"): // $ meta_tags متغیر حاوی یک آرایه با اطلاعات زیر است: // $ meta_tags ["کلمات کلیدی"] \u003d "PHP، کد، دستور العمل ها، وب" // $ meta_tags [ "توضیحات"] \u003d "اطلاعات PHP" // $ meta_tags ["نویسنده"] \u003d "kdg"؛

    جالب توجه: داده های داده برچسب را می توان نه تنها از فایل های واقع در سرور، بلکه از دیگر URL ها حذف کرد.

    تبدیل خط به ثبت نام بالا و پایین

    در RNR چهار توابع طراحی شده برای تغییر خط ثبت نام وجود دارد:

    strtolower ()

    تابع Strtolower () تمام نمادهای رشته الفبایی را به ثبت نام پایین تر تبدیل می کند. Syntax تابع Strtolower ():

    رشته Strtolower (ردیف رشته)

    تابع نمادهای غیر الفبایی تغییر نمی کند. تبدیل یک رشته به تابع ثبت نام پایین تر Strtolower () در مثال زیر نشان داده شده است:

    $ Sentence \u003d "پخت و پز و برنامه نویسی پی اچ پی دو مورد من هستند!"؛ $ Sentence \u003d Strtolower ($ حکم)؛ // پس از فراخوانی عملکرد $ جمله شامل یک رشته // "پخت و پز و برنامه نویسی PHP دو مورد من بود!"

    strtoupper ()

    ردیف ها را می توان نه تنها به پایین، بلکه همچنین به ثبت نام بالا تبدیل کرد. تبدیل توسط تابع StrtoUpper () انجام می شود که دارای نحو زیر است:

    strstoUpper رشته (رشته رشته)

    تابع نمادهای غیر الفبایی تغییر نمی کند. تبدیل یک رشته به تابع ثبت نام بالا strtoupper () در مثال زیر نشان داده شده است:

    $ Sentence \u003d "پخت و پز و برنامه نویسی پی اچ پی دو مورد من هستند!"؛ $ sentent \u003d strtoupper ($ جمله)؛ // پس از فراخوانی عملکرد $ جمله شامل یک رشته // "پخت و پز و برنامه نویسی PHP دو مورد من بود!"

    ucfirst ()

    تابع UCFirst () اولین نماد خط را به ثبت نام بالا تبدیل می کند - به شرطی که علامت حروف الفبا است. تابع Syntax UCFirst ():

    رشته ucfirst (ردیف رشته)

    تابع نمادهای غیر الفبایی تغییر نمی کند. تبدیل تابع نماد رشته اول شخصیت UCFirst () در مثال زیر نشان داده شده است:

    & SENTENT \u003d "پخت و پز و برنامه نویسی پی اچ پی دو مورد من هستند!"؛ $ Sentence \u003d UCFirst ($ حکم)؛ // پس از فراخوانی عملکرد $ جمله شامل یک رشته // "پخت و پز و برنامه نویسی PHP دو مورد مورد علاقه است!"

    ucwords ()

    تابع UCWords () اولین حرف از هر کلمه را به ثبت نام بالا تبدیل می کند. UCWords () نحو عملکرد:

    رشته ucwords (رشته رشته ")

    تابع نمادهای غیر الفبایی تغییر نمی کند. "کلمه" به عنوان دنباله ای از شخصیت های جدا شده از سایر عناصر فضاهای رشته تعریف شده است. مثال زیر نشان می دهد تبدیل اولین نمادهای کلمه به تابع UCWords ():

    $ Sentence \u003d "پخت و پز و برنامه نویسی پی اچ پی دو مورد من هستند!"؛ $ Sentence \u003d UCWords ($ حکم)؛ // پس از فراخوانی عملکرد $ جمله شامل یک رشته // "پخت و پز و برنامه نویسی PHP دو مورد من بود!"

    strrchr ()

    strrChr ("رشته"، "o") - آخرین ورودی Substring را پیدا می کند

    اگر Substring یافت نشد، اشتباه را باز می گرداند.

    بر خلاف StrChR ()، اگر خط مورد نظر شامل بیش از یک نماد باشد، تنها اولین کاراکتر استفاده می شود.

    اگر پارامتر دوم یک رشته نیست، آن را به طور کامل هدایت می شود و به عنوان یک کد نماد تفسیر می شود.

    // دریافت آخرین دایرکتوری از $ path $ dir \u003d substr (strrchr ($ مسیر، ":")، 1)؛ // دریافت همه چیز پس از آخرین ترجمه خط $ text \u003d "line 1 \\ nline 2 \\ nline 3"؛ $ last \u003d substr (strrchr ($ text، 10)، 1)؛

    highlight_string ()

    highlight_string- برجسته کردن نحو رشته.

    مخلوط highlight_string (String str [، بازگشت بول])

    تابع HighLight_String () یک نسخه را با نحو رشته برجسته نشان می دهد، با استفاده از رنگ های تعریف شده در برجسته ساخته شده در نحو پی اچ پی.

    اگر پارامتر دوم بازگشت درست باشد، Highlight_String () نسخه کد رنگی را به عنوان یک رشته به جای چاپ آن بازگرداند. اگر پارامتر دوم مهم نیست، highlight_string () بازگشت با موفقیت، نادرست با شکست.

    توجه: 1. بازگشت در دسترس است، با شروع از PHP 4.2.0. قبل از آن، او به طور پیش فرض کار کرد، به عنوان مثال نادرست
    2. تابع highlight_string () کد PHP را با برچسب ها متمایز می کند. show_source () - هم معنی highlight_file (). برای تغییر رنگ پیش فرض انتخاب، از دستورالعمل های پی اچ پی زیر استفاده کنید:

    highlight.bg #fffffffffffffff.com highlight.com # ff8000 highlight.default # 0000BB highlight.html # 000000 highlight.html # 007700 highlight.String # dd0000 v.htaccess: php_flag highlight.bg #ffffff در php: اگر (ni_get ("برجسته .bg ") \u003d\u003d" ") ...

    addslashes ()

    - Shields مخلوط های ویژه در رشته

    مهلت مهلت را که در آن اسلش معکوس (\\) قبل از هر جاروبرقی خاص اضافه شده است، به عنوان مثال، برای استفاده بعدی از این خط در درخواست پایگاه داده اضافه شده است.

    نقل قول های تک (")، نقل قول در حال مرگ (")، برش معکوس (\\) و نول (بایت صفر) محافظت می شوند.

    $ str \u003d "آیا نام شما O" Reilly است؟ "؛ // نمایش ها: آیا نام شما O \\" Reilly است؟ echo addslashes ($ str)؛

    استریپ ها

    - حذف محافظ شخصیت های تولید شده توسط تابع addslashes () حذف می کند سپرده های محافظ. (\\ "تبدیل به"، و غیره). دو Bexlash (\\\\) به تک (\\) تبدیل می شود.

    wordWrap ()

    انتقال ردیف به این تعداد کاراکترها با استفاده از یک نماد شکستن رشته // با استفاده از WordWrap () انجام می شود. CITE CITE ($ OURTEXT، $ MAXLEN \u003d 60، $ prefix \u003d "\u003e") ($ st \u003d wordwrap ($ uTREXTEXT، $ maxlen-strlen ($ prefix)، "\\ n")؛ $ st \u003d $ prefix.str_replace ( "\\ n"، "\\ n $ prefix"، $ st)؛ بازگشت $ st؛) echo cite ("اولین ماتریس من طراحی شده بود کاملا به طور طبیعی کامل بود، این کار هنر - بی عیب و نقص بود. یک پیروزی تنها برابر بود با نارسایی قابل توجه آن. اجتناب ناپذیری از عذاب آن به من در حال حاضر به عنوان یک نتیجه از ناقص ذاتی در هر انسان آشکار است. بنابراین، من آن را براساس تاریخچه خود را دوباره طراحی کردم تا دقیق تر نشان دهنده تفاوت های مختلف طبیعت شما باشد. با این حال، من دوباره شکست خورد. "، 20)؛

    \u003e اولین ماتریس I\u003e طراحی کاملا\u003e به طور طبیعی\u003e کامل بود، آن را یک کار هنر -\u003e بی عیب و نقص، فوق العاده بود. \u003e پیروزی\u003e تنها برابر توسط\u003e شکست ناپذیر آن\u003e شکست خورده است. \u003e unevitability\u003e از عذاب آن است\u003e آشکار به من\u003e به عنوان یک نتیجه\u003e از\u003e ناقص\u003e ذاتی در هر انسان\u003e بنابراین،\u003e I\u003e آن را دوباره طراحی کرده است\u003e بر اساس تاریخ\u003e تاریخ\u003e به طور دقیق\u003e دقیقا منعکس\u003e Grotesqueries of\u003e طبیعت شما. با این حال، من دوباره\u003e ناامید شده توسط\u003e شکست خوردم.


    ادامه مطلب:

    سایت ها را می توان به استاتیک و پویا تقسیم کرد. پس از تسلط بر HTML و CSS، که به شما اجازه می دهد یک کارت کسب و کار زیبا در اینترنت ایجاد کنید، بسیاری از آنها در مورد چگونگی ایجاد یک سایت پویا در PHP فکر می کنند. در عین حال، Proxigator باید توجه داشته باشید که اکنون شروع به مطالعه برنامه نویسی وب می کند: اصول کار با سایت متفاوت خواهد بود. یکی از اولین مشکلات که توسط یک مبتدی در پی اچ پی مواجه شده است، با ردیف ها، خواندن و پردازش آنها کار می کند.

    شایان ذکر است که پی اچ پی تعداد زیادی از روش ها را نشان می دهد، بنابراین لازم است شروع به مطالعه آنها با ساده ترین دستکاری ها، مانند خروجی رشته، جستجو، دریافت یا جایگزینی Substring، تغییر ثبت نام و بازگشت طول از رشته بسیاری از توابع با نمادهای سیریلیک کار می کنند. بنابراین، تمام نمونه ها به زبان انگلیسی برای وضوح نوشته شده است. برای ردیف های سیریلیک، توابع مشابه استفاده می شود، اما با پیشوند MB_ (به عنوان مثال MB_STROS ()). قبل از استفاده از آنالوگ ها، در php.ini، لازم است ریل به رشته؛ extension \u003d php_mbsstring.dll، فقط حذف semicolon.

    ایجاد و نتیجه گیری ردیف

    ما خروجی رشته را به صفحه نمایش با استفاده از طراحی شناخته شده Echo Language تجزیه و تحلیل خواهیم کرد. برنامه نویس بلافاصله می تواند رشته را برداشت:

    echo "این یک خط جدید است"

    یا ابتدا یک متغیر ایجاد کنید و سپس آن را روی صفحه نمایش دهید:

    $ str \u003d "این یک خط جدید است"؛

    اگر شما نیاز به برداشتن چندین ردیف در یک، پس آنها به پیوستن به آنها متوسل می شوند:

    echo "این". "جدید". "خط"؛

    $ str1 \u003d "این"؛

    $ str2 \u003d "جدید"؛

    $ str3 \u003d "رشته"؛

    echo $ str1. $ str2 $ str3؛

    در مورد دوم، صفحه نمایش مشتق شده است اتونیست. فضا را می توان بلافاصله هنگام تماس با ECHO اضافه کرد:

    echo $ str1. "" $ str2 "" $ str3؛

    در این مورد، صفحه نمایش نمایش داده خواهد شد: "این یک خط جدید است." Concatenation نه تنها در هنگام نمایش، بلکه هنگام ایجاد یک رشته امکان پذیر است:

    $ str1 \u003d "این"؛

    $ str2 \u003d "جدید"؛

    $ str3 \u003d "رشته"؛

    $ string \u003d. $ str1 "" $ str2 "" $ str3؛

    echo $ string؛

    اکو هر دو سیریلیک را نمایش می دهد. اگر یکی از متغیرهای حاوی یک عدد بود، سپس با پیوند، این عدد به رشته مربوطه تبدیل می شود:

    $ sum \u003d $ i + $ i؛ // در حال حاضر مبلغ مبلغ شامل شماره 4 است

    echo $ i "+". $ من "\u003d". $ مبلغ؛

    صفحه نمایش نمایش داده خواهد شد: "2 + 2 \u003d 4".

    نمادهای خدمات

    فرض کنید رشته با استفاده از ($ string \u003d "SO") تعریف شده است. سپس شما می توانید به طور کامل با خیال راحت از توالی های کنترل استفاده کنید:

    • \\ n یک ترجمه ردیف را ایجاد می کند؛
    • \\ r حمل و نقل را باز می گرداند؛
    • \\ "سپر نقل قول های دوگانه:
      • echo "String with \\" double \\ "نقل قول"؛ // ردیف با "دو برابر" نقل قول
    • \\ $ سپر دلار؛
    • \\\\ سپر پشت زمین.

    توالی ها خیلی بیشتر هستند، شما می توانید همه چیز را در مستندات رسمی پی اچ پی پیدا کنید.

    نحوه پیدا کردن موقعیت اولین زیربنای ورودی

    فرض کنید ما یک رشته ساده داریم:

    ما همچنین دو خط با نام داریم:

    $ نام \u003d "Yemelyan"؛

    $ aothername \u003d "katherin"؛

    ما باید بدانیم که آیا خط اول شامل این دو نام است. برای انجام این کار، از تابع STROS استفاده کنید ($ str، $ جستجو). اگر این رشته در اصل، $ str قرار دارد، موقعیت زیره مورد نظر $ جستجو را باز می کند. در غیر این صورت، تابع یک مقدار بولین را به دست می آورد. به عنوان مثال، strps ($ string، $ enternameName) FALSE، و strps ($ string، $ نام) یک عدد صحیح است. کد مانند این خواهد بود (هنگامی که موقعیت روی صفحه نمایش داده می شود، گزینه را بنویسید):

    $ string \u003d "نام من yemelyan است و من 27 ساله هستم"؛

    $ نام \u003d "Yemelyan"؛

    $ aothername \u003d "katherin"؛

    echo strpos ($ string، $ exitanname)؛ // load false

    echo strpos ($ string، $ نام)؛ // موقعیت اولین زیربنای ورودی را به ارمغان خواهد آورد

    توجه داشته باشید که شماره رشته شروع می شود با خراش، یعنی، در مورد ما، آخرین خط شماره 11 را خروجی می کند (شکاف ها نیز در نظر گرفته می شود).

    جستجو برای موقعیت آخرین بستر بستر و مشکلات

    اگر تابع strpos () موقعیت اولین ورودی را بازبینی کند، عملکرد متضاد strRPOS () به دنبال آخرین ورود Substring است.

    برخی از سنگ های زیرزمینی مربوط به ابتدای شماره وجود دارد. لازم به ذکر است: در PHP، کار با ردیف ها می تواند با محدودیت های مقایسه ها پیچیده شود. بنابراین، بهتر است از عملیات مقایسه با نفی استفاده نکنیم: strs ($ str، $ جستجو)! \u003d false. در هر نسخه از PHP، مثالهایی با چنین معادله ای ممکن است نادرست کار نکند، زیرا تعداد رشته ها با صفر آغاز می شود و در تفسیر منطقی 0 و نادرست وجود دارد. این به تابع strSPOS () اعمال می شود.

    نحوه پیدا کردن تعداد نوشته ها

    اغلب لازم است موقعیت اول یا آخرین ورودی زیر را پیدا کنید، اما تعداد کل آنها. برای انجام این کار، از تابع SubstR_Count () استفاده کنید، که حداقل دو متغیر را پردازش می کند: Substr_Count ($ str، $ جستجو). یک عدد صحیح را باز می گرداند اگر شما نیاز به کاهش منطقه جستجو در خط، پس از آن دو متغیر دیگر به تابع منتقل می شود: شروع و پایان رشته به ترتیب. به عبارت دیگر، عملکرد در این مورد مانند این نامیده می شود: substr_count ($ str، $ جستجو، $ start، $ end). تابع به دنبال جایگزینی $ جستجو در فاصله از $ شروع به $ به پایان دادن به $ $ str. اگر رشته یافت نشد، تابع صفر بازگشت خواهد کرد.

    چگونه تغییر ردیف ثبت نام در PHP: نمونه ها

    تغییر در ثبت نام اغلب برای مقایسه ردیف ها استفاده می شود و اجازه می دهد، کاربر باید نام خدا را در برنامه وارد کند، یک نسخه "یک" وجود دارد که پاسخ کاربر مقایسه خواهد شد. اگر متن وارد شده با موجودات مطابقت نداشته باشد (به عنوان مثال، کاربر "یک" یا "یک" را می نویسد)، سپس این برنامه به جای درست بودن این برنامه ارزش نادرست را به دست می آورد. برای جلوگیری از این، تابع تغییر ثبت نام اعمال می شود. این اغلب مورد استفاده قرار می گیرد اگر سایت در پی اچ پی دارای برچسب ها باشد: به جای صدها گزینه برای کلمه "شخصی" ("شخصی"، "شخصی"، "شخصی"، و غیره) تنها یک برچسب در حروف کوچک وجود دارد.

    تابع Strtolower () ثبت نام را به پایین تر تغییر می دهد. فرض کنید یک خط $ catname \u003d "fluffy" وجود دارد. تابع Strtolower ($ catname) رشته "کرکی" را بازگرداند. شما می توانید ثبت نام را به بالا با استفاده از تابع strtoupper () تغییر دهید.

    نحوه پیدا کردن یک رشته رشته در PHP: کار با توابع

    اغلب شما می خواهید طول رشته را پیدا کنید. به عنوان مثال، در پی اچ پی، با خطوط این نوع کار می تواند در ایجاد یک چرخه مورد نیاز باشد. برای جستجو برای یک رشته، تابع Strlen () استفاده می شود، که شماره را باز می گرداند - تعداد کاراکترها. ما نباید فراموش کنیم که آخرین شخصیت شماره Strlen ($ str) -1 را داشته باشد، زیرا تعداد صفر از صفر شروع می شود.

    دریافت و جایگزینی Substring در PHP: کار با ردیف

    گرفتن Substring توسط تابع Substr () انجام می شود، که می تواند دو یا سه استدلال را انجام دهد: Substr ($ str، $ start، $ end). فرض کنید ما یک string $ string \u003d "گربه کرکی" داریم، و ما می خواهیم یک substring از دوم به نماد چهارم بدست آوریم. از آنجا که تعداد شروع از ابتدا شروع می شود، متغیر با این سوپاپ به نظر می رسد: $ newstring \u003d substr ($ string، 1، 4). اگر ما وارد $ newstring \u003d substr ($ string، 1)، ما از نماد دوم از آخرین (یعنی "Luffy") یک زیرمجموعه دریافت خواهیم کرد. این کد با کد خط کامل با استفاده از Strlen (): Substr ($ String، 1، Strlen ($ String) یکسان است.

    برای جایگزینی Substring، تابع str_replace () استفاده می شود، که سه متغیر را می گیرد: str_replace ($ substr، $ newsub، $ str). بر خلاف بسیاری از توابع، str_replace () به درستی با نمادهای سیریلیک کار می کند و هیچ آنالوگ با پیشوند ندارد. مثال:

    $ str \u003d "امروز آب و هوای وحشتناک است!"؛

    $ newstr \u003d str_replace ("وحشتناک"، "فوق العاده"، $ str)؛ // امروز آب و هوای فوق العاده امروز!

    ترجمه ردیف

    هر کسی که برنامه نویسی وب را مطالعه می کند دیر یا زود شما باید ردیف را به شماره ترجمه کنید. برای این، دو توابع مشابه مورد استفاده قرار می گیرند: intval () و floatval ()، که هر کدام یک متغیر رشته ای را می گیرد. آنها تنها با نوع داده ها به یکدیگر متفاوتند: intval () یک عدد صحیح را باز می گرداند، و FloatVal () یک شماره نقطه شناور است.

    برای استفاده از هر دو intval () و floatval ()، لازم است که رشته با اعداد شروع شود، آنها به شماره تبدیل می شوند. اگر هر مجموعه ای از حروف بعد از اعداد، آنها به سادگی نادیده گرفته شوند. در صورتی که رشته با حروف شروع می شود، استفاده از تابع صفر را باز می کند. در حالت ایده آل، رشته باید شامل اعداد منحصرا باشد.

    ترجمه شماره در رشته

    اغلب شما می خواهید اعداد را به رشته ترجمه کنید. بگذارید بگوییم اگر شما نیاز به نیمی از تعداد و ساخت آن را به یک مربع (به عنوان مثال، بررسی کنید که آیا برابری انجام می شود: 88 x 88 + 33 x 33 \u003d 8833). در این مورد، تابع Stral () استفاده می شود، که رشته را با شماره باز می گرداند. پس از آن، با یک خط جدید، شما می توانید تمام اقدامات دیگر را انجام دهید: تغییر، به دنبال ورود Substring و سایر توابع. در صورت لزوم، رشته را می توان دوباره به شماره توضیح داده شده در بالا ترجمه کرد.

    این مقاله تنها بخش کوچکی از تمام توابع مربوط به خطوط را پوشش می دهد. بخشی از توابع غیرمعمول با نمادها کار می کند، اما به دلیل خاصیت، بزرگ در مواد موجود نیست. برای آشنا کردن خود با این توابع، شما باید به خواندن مستندات رسمی پی اچ پی بروید، که اطلاعات به روز را نمایش می دهد.

    وظیفه این است که نجات و پردازش اطلاعات لازم از یک سایت شخص ثالث به طور گسترده ای و به دلایل مختلفی از توسعه دهندگان وب می شود: به این ترتیب می توانید محتوای پروژه خود را پر کنید، به طور پویا برخی از اطلاعات را بارگذاری کنید بر.

    در چنین مواردی، برنامه نویس با این سوال مواجه است: چه ده ها کتابخانه را انتخاب کنید؟ در این مقاله سعی کردیم گزینه های محبوب ترین را در نظر بگیریم و بهترین آنها را انتخاب کنیم.

    عبارات با قاعده

    حتی با وجود این واقعیت که "به طور منظم" اولین چیزی است که به ذهن می آید ارزش استفاده از آنها برای پروژه های واقعی نیست.

    بله، با وظایف ساده، عبارات منظم با بهترین از همه مقابله می شوند، اما استفاده از آن بسیار مختل می شود زمانی که شما نیاز به استعفا یک قطعه بزرگ و پیچیده از کد HTML، که علاوه بر این، همیشه به یک قالب خاص مطابقت ندارد و می تواند حاوی خطاهای نحو به طور کلی است.

    به جای "اتمام" از بیان منظم خود با هر کوچکترین تغییر در کد، ما توصیه می کنیم با استفاده از ابزارها در زیر - راحت تر و راحت تر و قابل اعتماد تر است.

    XPATH و DOM.

    htmlsql

    اگر از PHP استفاده نکنید، می توانید با یک لیست مختصر از ابزارهای مشابه برای سایر زبان های برنامه نویسی آشنا شوید.