نحو بیان منظم
هنگامی که مفسر PHP یک فایل را پردازش می کند، به دنبال برچسب ها می گردد، که نشان می دهد کد PHP کجا شروع و به پایان می رسد. هر چیزی که خارج از یک جفت تگ شروع و پایان باشد توسط مفسر نادیده گرفته می شود (یعنی به سادگی به وب سرور همانطور که هست داده می شود). به عنوان مثال، فایل ارسال شده به مفسر PHP دارای کد زیر است:
این مورد توسط مترجم نادیده گرفته می شود و به سادگی به همان شکلی که هست، ابتدا به وب سرور داده می شود، که به نوبه خود به مرورگر می دهد.
این نیز توسط مترجم نادیده گرفته می شود و به سادگی به وب سرور همانطور که هست منتقل می شود.
اگر فایل فقط حاوی کد PHP است یا در انتهای فایل قرار دارد، یعنی چیزی بعد از آن وجود ندارد، ترجیحاً تگ بسته شدن حذف می شود (مشخص نشده است). این به جلوگیری از اضافه کردن کاراکترهای فضای خالی تصادفی بعد از تگ پایان PHP کمک می کند، که می تواند اثرات ناخواسته ایجاد کند.
PHP همچنین اجازه می دهد تا یک برچسب باز کردن کوتاه вместо
echo "Hello World!"; ?>
کاراکترهای فضای خالی
در کدهای پی اچ پی، می توانید از کاراکترهای فضای خالی استفاده کنید: فاصله ها، تب ها و خطوط شکست. تعداد کاراکترهای فضای خالی محدود نیست و به ترجیحات برنامه نویس بستگی دارد که هدف اصلی آن ایجاد یک متن برنامه (کد منبع) واضح و خوانا است.
مثال زیر کد PHP را نشان می دهد که از کاراکترهای فضای خالی استفاده می کند:
کد مثال میتوانست روی یک خط بدون استفاده از کاراکترهای فضای خالی نوشته شود، اما چنین کدی کمتر قابل خواندن است:
آخرین به روز رسانی در 27 نوامبر 2019، 07:10:59 (UTC/GMT +8 ساعت)
PHP باز و بسته کردن نحو برچسب ها
چهار جفت مختلف تگ باز و بسته وجود دارد که می توان از آنها در php استفاده کرد. در اینجا لیست برچسب ها آمده است.
- نحو پیش فرض
- برچسب های باز کوتاه
- تگ بسته شدن PHP در انتهای فایل را حذف کنید
نحو پیشفرض
نحو پیش فرض با " شروع می شود php" and ends with "?>".
مثال:
برچسب های باز کوتاه
تگ های کوتاه با " شروع می شود" and ends with "?>برچسبهای سبک کوتاه تنها زمانی در دسترس هستند که در فایل پیکربندی php.ini روی سرورها فعال باشند.
مثال:
echo "PHP example with short-tags"; ?>
تگ بسته شدن PHP در انتهای فایل را حذف کنید
توصیه می شود که یک تگ PHP در حال بسته شدن باید در فایلی که فقط حاوی کد PHP است حذف شود تا از وقوع فضای خالی تصادفی یا خطوط جدیدی که پس از برچسب بسته شدن PHP اضافه می شود، که ممکن است شروع به بافر کردن خروجی کند و باعث ایجاد اثرات نامطلوب شود، جلوگیری شود.
مثال:
جداسازی بیانیه PHP
در PHP، دستورات با یک نقطه ویرگول (;) مانند C یا Perl خاتمه می یابند. تگ بسته شدن یک بلوک از کد PHP به طور خودکار نشان دهنده یک نقطه ویرگول است، نیازی به داشتن نقطه ویرگول که آخرین خط یک بلوک PHP را خاتمه می دهد وجود ندارد.
قوانین جداسازی بیانیه
- نقطه ویرگول
- و/یا
- یک تگ PHP در حال بسته شدن
کدهای معتبر
در مثال بالا، هم نقطه ویرگول (;) و هم یک تگ PHP بسته کننده وجود دارد.
در مثال بالا، بعد از آخرین دستور، علامت (;) وجود ندارد، اما یک تگ PHP در حال بسته شدن وجود دارد.
در مثال بالا، یک نقطه ویرگول (;) در آخرین دستورالعمل وجود دارد اما هیچ تگ PHP بسته شدنی وجود ندارد.
حساسیت به حروف کوچک و بزرگ PHP
در PHP توابع، کلاسها، کلمات کلیدی زبان اصلی (به عنوان مثال if، else، while، echo و غیره) توسط کاربر تعریف شده است. بنابراین سه عبارت پژواک در مثال زیر برابر هستند.
مثال-1
")؛ ECHO("ما در حال یادگیری حساسیت حروف کوچک و بزرگ PHP هستیم
")؛ EcHo("ما در حال یادگیری حساسیت به حروف کوچک و بزرگ PHP هستیم
");
?>
ما در حال یادگیری حساسیت به حروف PHP هستیم در حال یادگیری حساسیت به حروف بزرگ و کوچک PHP هستیم
از سوی دیگر، همه متغیرها به حروف کوچک و بزرگ حساس هستند.
مثال زیر را در نظر بگیرید. فقط عبارت اول مقدار را به صورت $amount نشان می دهد زیرا $amount، $AMOUNT $amoUNT سه متغیر مختلف هستند.
مثال-2
")؛ echo("مقدار: $AMOUNT است
")؛ echo("مقدار: $amoUNT است
");
?>
مقدار این است: 200 مقدار است: مقدار:
عدم حساسیت فضای خالی PHP
به طور کلی، فضای خالی از جمله فاصله ها، برگه ها و کاراکترهای انتهای خط روی صفحه قابل مشاهده نیست. کالسکه برمی گردد. در PHP فضای خالی در کدنویسی اهمیتی ندارد، شما می توانید یک دستور خط را به هر تعداد خط یا تعدادی دستور جداگانه با هم در یک خط تقسیم کنید.
دو مثال زیر یکسان است:
مثال:
"؛ echo "کلاس او این است: $class و Roll No. is $roll_no"; ) student_info("David Rayy", "V", 12) ?>
مثال: عدم حساسیت فضای خالی پیشرفته
"؛ echo "کلاس او این است: $class و Roll No. is $roll_no"; ) student_info("David Rayy", "V", 12) ?>
نام دانش آموز: دیوید ری کلاس او: V and Roll No. 12 است
مثال: عدم حساسیت فضای سفید با زبانه ها و فاصله ها
در مثال زیر، از فاصله ها و تب ها در یک عملیات عددی استفاده می شود، اما در هر دو مورد، $xyz مقدار یکسانی را برمی گرداند.
"; // برگه ها و فاصله ها $xyz = 11 + 12; echo $xyz; ?>
PHP: نظرات تک خطی و چند خطی
نظر تک خطی
PHP از دو روش مختلف کامنت گذاری زیر پشتیبانی می کند.
# این یک نظر تک خطی است.
//این روش دیگری برای اظهار نظر تک خطی است.
مثال:
نظرات چند خطی
PHP از "C"، نظرات سبک پشتیبانی می کند. یک نظر با جفت کاراکتر /* شروع می شود و با جفت کاراکتر */ خاتمه می یابد.
/* این یک تست نظرات چندگانه است،
و این خطوط نادیده گرفته خواهد شد
در زمان اجرا */
مثال:
نظرات چند خطی را نمی توان تودرتو کرد
اولین اسکریپت PHP
در اینجا اولین اسکریپت PHP است که "Hello World..." را در مرورگر وب نمایش می دهد.
<?php echo "Hello World..."; ?>
تگ ها به وب سرور می گویند که هر چیزی که در داخل تگ ها وجود دارد را به عنوان کد PHP برای اجرا در نظر بگیرد. کد بسیار ساده است. از یک تابع PHP داخلی "echo" برای نمایش متن "Hello World..." در صفحه وب استفاده می کند. همه چیز خارج از این تگ ها مستقیماً به مرورگر ارسال می شود.
ارائه تصویری
ترکیب PHP و HTML
نحو PHP فقط در برچسب های PHP قابل اجرا است.
PHP را می توان در HTML جاسازی کرد و در هر جایی از سند قرار داد.
هنگامی که PHP در اسناد HTML تعبیه می شود و PHP این سند را تجزیه می کند، قسمتی که با یک تگ افتتاحیه تعبیر می شود () از PHP و نادیده گرفتن بقیه سند.
PHP و HTML با هم در مثال زیر دیده می شوند.
اینجا به صورت آنلاین تمرین کنید:
عبارات منظم ابزار بسیار مفیدی برای توسعه دهندگان است. با کمک آنها می توانید متن، کلمات یا هر کاراکتر دیگری را پیدا، تعریف یا جایگزین کنید. مقاله امروز شامل 15 مورد از مفیدترین عبارات منظم است که هر توسعه دهنده وب به آن نیاز دارد.
مقدمه ای بر عبارات منظم
بسیاری از توسعه دهندگان مبتدی درک و استفاده از عبارات منظم را بسیار دشوار می دانند. در واقع، همه چیز آنقدرها هم که به نظر می رسد دشوار نیست. قبل از اینکه مستقیماً به عبارات منظم پرش کنیم، با کد مفید و همه کاره آنها، اجازه دهید نگاهی به اصول اولیه بیاندازیم:
نحو بیان منظم
عبارت منظم | به معنای |
فو | رشته "فو" |
^فو | رشته با "foo" شروع می شود |
foo$ | رشته با "foo" به پایان می رسد |
^foo$ | "foo" فقط یک بار در یک خط رخ می دهد |
الف، ب یا ج | |
هر کاراکتر کوچک | |
[^A-Z] | هر کاراکتری که با حروف بزرگ نباشد |
(gif|jpg) | هم به معنی گیف و jpeg است |
+ | یک یا چند نویسه کوچک |
هر عدد، نقطه یا علامت منفی | |
^{1,}$ | هر کلمه، حداقل یک حرف، عدد یا _ |
()() | wy، wz، xy، یا xz |
(^A-Za-z0-9) | هر کاراکتری (نه یک عدد یا یک حرف) |
({3}|{4}) | یعنی سه حرف یا 4 عدد |
توابع PHP برای عبارات منظم
عملکرد | شرح |
preg_match() | تابع ()preg_match یک رشته را مطابق با یک الگوی داده شده جستجو می کند، اگر رشته پیدا شود true و در غیر این صورت false برمی گرداند. |
preg_match_all() | تابع ()preg_match_all تمام رخدادهای یک رشته را که توسط یک الگو داده شده است را پیدا می کند |
preg_replace() | تابع ()preg_replace مانند ereg_replace() کار می کند، با این تفاوت که عبارات منظم را می توان هم برای تعیین الگوی جستجو و هم از رشته برای جایگزینی مقدار یافت شده استفاده کرد. |
preg_split() | تابع ()preg_split همان split() است، با این تفاوت که یک عبارت منظم می تواند به عنوان پارامتری برای الگوی جستجو استفاده شود. |
preg_grep() | تابع preg_grep () تمام عناصر آرایه ورودی را جستجو می کند و تمام عناصری را که با الگوی عبارت منظم مطابقت دارند برمی گرداند. |
preg_quote() | از کاراکترهای بیان منظم فرار می کند |
تایید نام دامنه
بررسی اینکه آیا یک رشته یک نام دامنه معتبر است یا خیر
$url = "http://komunitasweb.com/"; if (preg_match("/^(http|https|ftp)://(*(?:.*)+):?(d+)?/?/i", $url)) ( echo "url شما خوب است ."; ) else ( "نشانی اینترنتی اشتباه" را تکرار کنید.)
برجسته کردن کلمه در متن
این یک عبارت منظم بسیار مفید است، می توانید از آن برای پیدا کردن کلمه مناسب و برجسته کردن آن استفاده کنید. به خصوص برای نمایش نتایج جستجو مفید است.
$text = "جمله نمونه از KomunitasWeb، regex در برنامه نویسی وب رایج شده است. اکنون regex را یاد می گیریم. طبق ویکی پدیا، عبارات منظم (به اختصار regex یا regexp، با اشکال جمع regex، regexps یا regexen) به صورت رسمی نوشته می شوند. زبانی که می تواند توسط یک پردازشگر عبارت منظم تفسیر شود"؛ $text = preg_replace("/b(regex)b/i"، " 1"، $text)؛ echo $text;
برجسته کردن نتایج جستجو در وبلاگ وردپرس
همانطور که در مثال قبلی ذکر شد، این مثال کد در نتایج جستجو مفید است و یک راه عالی برای پیاده سازی این ویژگی در وبلاگ وردپرس وجود دارد.
فایل search.php خود را باز کنید و تابع ()the_title را پیدا کنید. کد زیر را جایگزین کنید:
echo $title;
حالا بالای این خط این کد را اضافه کنید:
\0"، $title); ?>
فایل search.php را ذخیره کرده و style.css را باز کنید. خط زیر را اضافه کنید:
Strong.search-excerpt ( پس زمینه: زرد؛ )
دریافت تمام تصاویر از یک سند HTML
اگر تا به حال نیاز به دریافت تمام تصاویر از یک صفحه وب داشته باشید، این کد باید به شما کمک کند تا به راحتی با استفاده از قابلیت های cURL یک بارگزار تصویر ایجاد کنید.
$image = array(); preg_match_all("/(img|src)=("|\")[^"\">]+/i", $data, $media); unset($data); $data = preg_replace("/(img|src)("|\"|="|=\")(.*)/i", "$3", $media); foreach ($data به عنوان $url) ($info = pathinfo($url); if (isset($info["extension"])) ( if (($info["extension"] == "jpg") || ($info["extension"] == "jpeg") || ($info["extension"] == "gif") || ($info["extension"] == "png")) array_push($ تصاویر، $url); ))
حذف کلمات تکراری (به حروف بزرگ و کوچک حساس نیست)
آیا اغلب هنگام تایپ کلمات را تکرار می کنید؟ این عبارت منظم کمک خواهد کرد.
$text = preg_replace("/s(w+s)1/i"، "$1"، $text);
حذف علائم نگارشی مکرر
همینطور، فقط برای نقطه گذاری. با ویرگول دوتایی خداحافظی کنید.
$text = preg_replace("/.+/i"، "."، $text);
تگ های XML/HTML را جستجو کنید
این تابع ساده دو آرگومان می گیرد. اولی برچسبی است که باید پیدا کنید و دومی متغیری است که حاوی XML یا HTML است. باز هم، استفاده از این تابع با cURL بسیار راحت است.
تابع get_tag($tag، $xml) ($tag = preg_quote($tag); preg_match_all("(<".$tag."[^>]*>(.*?)".$tag.">")"، $xml، $matches، PREG_PATTERN_ORDER); بازگشت $matches; )
تگ های XHTML/XML با مقدار مشخصه خاصی را جستجو کنید
این تابع بسیار شبیه به عملکرد قبلی است، با این تفاوت که می توانید ویژگی مورد نظر را روی برچسب تنظیم کنید. به عنوان مثال، شما می توانید به راحتی پیدا کنید
تابع get_tag($attr، $value، $xml، $tag=null) ( if(is_null($tag)) $tag = "\w+"؛ در غیر این صورت $tag = preg_quote($tag)؛ $attr = preg_quote($ attr)؛ $value = preg_quote ($value)؛ $tag_regex = "/<(".$tag.")[^>]*$attr\s*=\s*". "(["\"])$value\\2[^>]*>(.*?)<\/\\1>/" preg_match_all($tag_regex، $xml، $matches، PREG_PATTERN_ORDER)؛ بازگشت $matches؛ )
مقادیر رنگ هگزادسیمال را بیابید
یکی دیگر از ابزارهای مفید برای یک توسعه دهنده وب! این به شما امکان می دهد مقدار هگزادسیمال یک رنگ را پیدا کنید/بررسی کنید.
$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i"، $string)) ( echo "مثال 6 موفقیت آمیز."؛ )
جستجوی عنوان مقاله
این قطعه کد متن داخل تگ ها را پیدا کرده و نمایش می دهد
$fp = fopen("http://www.catswhocode.com/blog"،"r"); while (!feof($fp))($page .= fgets($fp, 4096); ) $titre = eregi("
تجزیه لاگ آپاچی
اکثر سایت ها بر روی وب سرور معروف Apache اجرا می شوند. اگر سایت شما یکی از آنهاست، چرا از PHP و عبارات منظم برای تجزیه لاگ های آپاچی استفاده نمی کنید؟
//Logs: وب سرور آپاچی //بازدیدهای موفقیت آمیز فقط به فایل های HTML. برای شمارش تعداد بازدید از صفحه مفید است. "^((?# IP یا نام دامنه مشتری)S+)s+((?#تأیید هویت پایه)S+s+S+)s+[((?#تاریخ و زمان)[^]]+)]s+"(?: GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/+"s+(?#کد وضعیت)200s+((?#بایت منتقل شد)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#عامل کاربر )[^"]*)"$" //Logs: وب سرور آپاچی //404 فقط خطاهای "^((?# IP یا نام دامنه)S+)s+((?#اصالتسنجی پایه)S+s+S+) s+[((?#تاریخ و زمان)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#پارامتر)[ ^؟]+)؟ HTTP/+"s+(?#کد وضعیت)404s+((?#بایت منتقل شد)[-0-9]+)s+"((?#ارجاع)[^"]*)"s+"((?#عامل کاربر )[^"]*)"$"
جایگزینی نقل قول های دوگانه با نقل قول های هوشمند
اگر عاشق تایپوگرافی هستید، این عبارت منظم را دوست خواهید داشت که نقل قول های دوگانه معمولی را با نقل قول های هوشمند جایگزین می کند. یک عبارت منظم مشابه در وردپرس در محتوای صفحه استفاده می شود.
Preg_replace("B"b([^"x84x93x94rn]+)b"B"، "?1?"، $text);
بررسی جامع رمز عبور
این عبارت منظم تضمین می کند که حداقل شش کاراکتر، اعداد، خط فاصله و خط زیر در قسمت متن وارد شده است.
فیلد متن باید حداقل شامل یک نویسه بزرگ، یک نویسه کوچک و یک عدد باشد.
"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*؟) [-_a-zA-Z0-9](6،)z"
وردپرس: استفاده از یک عبارت منظم برای دریافت تصاویر از یک پست
از آنجایی که بسیاری از شما کاربران وردپرس هستید، ممکن است داشتن کدی مفید باشد که به شما امکان می دهد تمام تصاویر را از متن یک مقاله دریافت کرده و آنها را خروجی بگیرید.
برای استفاده از این کد، به سادگی آن را در هر فایلی در قالب خود قرار دهید.
پست_محتوا؛ $szSearchPattern = "~ ]* />~"؛ // اجرای preg_match_all برای گرفتن همه تصاویر و ذخیره نتایج در $aPics preg_match_all($szSearchPattern, $szPostContent, $aPics); // بررسی کنید که آیا حداقل 1 تصویر داریم $iNumberOfPics = count($aPics); if ($iNumberOfPics > 0) ( // اکنون در اینجا هر کاری را که باید با تصاویر انجام دهید انجام می دهید // برای این مثال، تصاویر فقط برای ($i=0; $i) نمایش داده می شوند< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
تولید شکلک های خودکار
یکی دیگر از ویژگی های مورد استفاده در وردپرس این است که به شما این امکان را می دهد که به طور خودکار نمادهای شکلک را با یک تصویر لبخند جایگزین کنید.
$texte="متن با شکلک:-)"; echo str_replace(":-)"،" ",$text);
جاوا اسکریپت در مرورگر شما مسدود شده است. اجازه دهید جاوا اسکریپت برای این سایت کار کند!
strip_tags
(PHP 3 >= 3.0.8، PHP 4، PHP 5)
strip_tags- برچسب های HTML و PHP را از یک رشته حذف می کندشرح
رشته strip_tags(string str[, string allowable_tags])این تابع رشته رشته را با حذف تگ های HTML و PHP برمی گرداند. برای حذف برچسب ها، از خودکاری مشابه آنچه در عملکرد استفاده می شود استفاده می شود fgetss().
آرگومان دوم اختیاری را می توان برای تعیین برچسب هایی که نباید حذف شوند استفاده کرد.
توجهاظهار نظر:آرگومان allowable_tags در PHP 3.0.13 و PHP 4.0b3 اضافه شد. از PHP 4.3.0، نظرات HTML نیز حذف می شوند.
زیرا strip_tags()صحت کد HTML را بررسی نمی کند، تگ های ناتمام می توانند منجر به حذف متنی شوند که در برچسب ها وجود ندارد.
مثال 1: مثال استفاده strip_tags()
$text = "پاراگراف
مقداری متن دیگر"؛ echo strip_tags ($text)؛ echo "\n\n-------\n"؛ // حذف نشودecho strip_tags($text، "
")؛ // اجازه ,,echo strip_tags($text، " ");
این مثال خروجی خواهد داد:
پاراگراف چند متن بیشتر -------
پاراگراف
چند متن دیگر
توجهاین تابع ویژگی های تگ های مشخص شده در آرگومان allowable_tags از جمله style و onmouseover را تغییر نمی دهد.
از PHP 5.0.0 strip_tags()امن برای رسیدگی به داده ها در فرم باینری.
این تابع یک اشکال قابل توجه دارد - چسباندن کلمات هنگام حذف برچسب ها است. علاوه بر این، این تابع دارای آسیب پذیری هایی است. تابع جایگزین مشابه strip_tags:
c" * - html "کثیف" زمانی به درستی پردازش می شود که کاراکترها را بتوان در مقادیر ویژگی تگ یافت< >* - html شکسته به درستی پردازش می شود * - نظرات، اسکریپت ها، استایل ها، PHP، Perl، کدهای ASP، تگ های MS Word، CDATA بریده می شوند * - اگر متن حاوی کد html باشد به طور خودکار قالب بندی می شود * - محافظت در برابر تقلبی مانند:<
توضیحات عملکرد را نیز ببینید