علامات php القصيرة لا تعمل. دوال PHP للتعبيرات العادية
التعبيرات العادية جدا اداة مفيدةللمطورين. بمساعدتهم ، يمكنك العثور على نص أو كلمات أو أي أحرف أخرى أو تحديدها أو استبدالها. جمعت مقالة اليوم 15 من أكثر التعبيرات العادية فائدة والتي سيحتاجها أي مطور ويب.
مقدمة عن التعبيرات العادية
يجد العديد من المطورين المبتدئين صعوبة بالغة في فهم التعبيرات العادية واستخدامها. في الواقع ، كل شيء ليس معقدًا كما قد يبدو. قبل أن ننتقل مباشرة إلى التعبيرات العادية ، برموزها المفيدة والمتعددة الاستخدامات ، دعنا نلقي نظرة على الأساسيات:
صيغة التعبير العادي
تعبير عادي | وسائل |
فو | السلسلة "foo" |
^ فو | يبدأ السطر بـ "foo" |
فو $ | ينتهي السطر بـ "foo" |
^ فو $ | يظهر "Foo" مرة واحدة فقط في السطر |
أ ، ب ، أو ج | |
أي حرف صغير | |
[^ أ-ي] | أي حرف غير كبير |
(gif | jpg) | تعني كلاً من "gif" و "jpeg" |
+ | حرف صغير واحد أو أكثر |
أي رقم أو نقطة أو علامة ناقص | |
^{1,}$ | أي كلمة ، حرف واحد على الأقل ، رقم أو _ |
()() | wy أو wz أو xy أو xz |
(^ A-Za-z0-9) | أي حرف (ليس رقمًا أو حرفًا) |
({3}|{4}) | يعني ثلاثة أحرف أو 4 أرقام |
دوال PHP للتعبيرات العادية
وظيفة | وصف |
تطابق مسبق () | تبحث الدالة preg_match () عن سلسلة وفقًا لنمط معين ، وتعود صحيحًا إذا تم العثور على السلسلة وخطأ ، وإلا |
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/" ؛ إذا (preg_match ("/ ^ (http://http|https|ftp)://(*(؟:.*)+):؟(d+)؟/؟/i"، $ url)) (صدى "عنوان url الخاص بك على ما يرام . "؛) else (صدى" عنوان url خاطئ. "؛)
تسليط الضوء على كلمة في النص
هذا تعبير عادي مفيد للغاية ، يمكنك استخدامه للعثور على الكلمة المطلوبة وتمييزها. مفيد بشكل خاص لعرض نتائج البحث.
$ text = "نموذج جملة من KomunitasWeb ، أصبح regex شائعًا في برمجة الويب. الآن نتعلم regex. وفقًا لـ wikipedia ، تتم كتابة التعبيرات العادية (المُختصرة إلى regex أو regexp ، مع صيغ الجمع regexes أو regexps أو regexen) في صيغة رسمية اللغة التي يمكن تفسيرها بواسطة معالج التعبير العادي "؛ $ text = preg_replace ("/ b (regex) b / i"، " 1"، $ text)؛ echo $ text؛
إبراز نتائج البحث في مدونة WordPress
كما ذكرنا في المثال السابق ، فإن مثال الكود هذا مفيد في نتائج البحث وهناك طريقة رائعة لتطبيق هذه الميزة في مدونة ووردبريس.
افتح ملف search.php الخاص بك وابحث عن الدالة_title (). استبدلها بالكود التالي:
صدى $ title؛
الآن ، فوق هذا السطر ، أضف هذا الرمز:
\0"، $ title)؛؟>
احفظ ملف search.php وافتح style.css. أضف السطر التالي:
مقتطفات بحث قوية (الخلفية: أصفر ؛)
استرداد كافة الصور من مستند HTML
إذا احتجت في أي وقت إلى الحصول على جميع الصور من صفحة الويب ، فيجب أن يكون هذا الرمز موجودًا. يمكنك بسهولة إنشاء محمل صور باستخدام ميزات cURL
صور $ = مجموعة () ؛ preg_match_all ("/ (img | src) = (" | \ ") [^" \ ">] + / i"، $ data، $ media)؛ unset (بيانات $) ؛ $ data = preg_replace ("/ (img | src) (" | \ "| =" | = \ ") (. *) / i"، "$ 3"، $ media)؛ foreach ($ data as $ 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 ، $ مباريات ، PREG_PATTERN_ORDER) ؛ إرجاع مباريات $؛ )
البحث عن علامات XHTML / XML ذات قيمة سمة محددة
هذه الوظيفة مشابهة جدًا للوظيفة السابقة ، باستثناء أنه يمكنك منح العلامة السمة المطلوبة. على سبيل المثال ، يمكنك أن تجد بسهولة
الدالة get_tag ($ attr، $ value، $ xml، $ tag = null) (if (is_null ($ tag)) $ tag = "\ w +"؛ else $ tag = preg_quote ($ tag)؛ $ attr = preg_quote ( $ attr)؛ قيمة $ = preg_quote (قيمة $)؛ $ tag_regex = "/<(".$tag.")[^>] * $ attr \ s * = \ s * "." (["\"]) $ value \\ 2 [^>] *> (. *؟)<\/\\1>/ "preg_match_all ($ tag_regex ، $ xml ، $ match ، PREG_PATTERN_ORDER) ؛ إرجاع $ مباريات ؛)
البحث عن قيم الألوان السداسية العشرية
أداة أخرى مفيدة لمطوري الويب! يسمح لك بالعثور على / التحقق من قيمة اللون السداسية العشرية.
سلسلة $ = "# 555555" ؛ if (preg_match ("/ ^ # (؟ :(؟ :( 3)) (1،2)) $ / i"، سلسلة $)) (صدى "مثال 6 ناجح." ؛)
البحث عن عنوان المقال
سيجد مقتطف الرمز هذا ويعرض النص داخل العلامات
$ fp = fopen ("http://www.catswhocode.com/blog"، "r")؛ while (! feof ($ fp)) ($ page. = fgets ($ fp، 4096)؛) $ titre = eregi ("
تحليل سجلات أباتشي
تعمل معظم المواقع على خادم الويب Apache المعروف. إذا كان موقعك واحدًا منهم ، فلماذا لا تستخدم PHP والتعبيرات العادية لتحليل سجلات Apache؟
// السجلات: خادم الويب Apache // الزيارات الناجحة لملفات HTML فقط. مفيد لحساب عدد مشاهدات الصفحة. "^ ((؟ # عنوان IP للعميل أو اسم المجال) S +) s + ((؟ # مصادقة أساسية) S + s + S +) s + [((؟ # التاريخ والوقت) [^]] +)] ث + "(؟: GET | POST | HEAD) ((؟ #File) / [^؟"] +؟. html؟) ؟؟ ((؟ # Parameters) [^؟ "] +)؟ HTTP / + "s + (؟ # رمز الحالة) 200 ثانية + ((؟ # بايت تم نقلها) [- 0-9] +) s +" ((؟ # Referrer) [^ "] *)" s + "(( ؟ # User agent) [^ "] *)" $ "// Logs: Apache web server // 404 errors only" ^ ((؟ # Client IP or domain name) S +) s + ((؟ # Basic Authentication) S + s + S +) s + [((؟ # التاريخ والوقت) [^]] +)] s + "(؟: GET | POST | HEAD) ((؟ # file) [^؟"] +) ؟؟ ((؟ # معلمات) [^؟ "] +)؟ HTTP / + "s + (؟ # رمز الحالة) 404s + ((؟ # بايت تم نقلها) [- 0-9] +) s +" ((؟ # Referrer) [^ "] *)" s + "(( ؟ # وكيل مستخدم) [^ "] *)" $ "
استبدال علامات الاقتباس المزدوجة بعلامات اقتباس ذكية
إذا كنت من محبي الطباعة ، فستحب هذا التعبير المعتاد الذي يحل محل المعتاد التنصيص، مع اقتباسات ذكية. يتم استخدام regex مماثل بواسطة Wordpress في محتوى الصفحة.
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 "
WordPress: استخدام تعبير عادي للحصول على صور من منشور
منذ كثير منكم بواسطة مستخدمي WordPress، قد تحتاج إلى كود يسمح لك بالحصول على جميع الصور من نص المقال وعرضها.
من أجل استخدام هذا الرمز ، ما عليك سوى لصقه في أي ملف من مظهرك.
آخر المحتوى؛ $ szSearchPattern = "~ ] * /> ~ "؛ // قم بتشغيل preg_match_all للحصول على جميع الصور وحفظ النتائج في $ aPics preg_match_all ($ szSearchPattern ، $ szPostContent ، $ aPics) ؛ // تحقق لمعرفة ما إذا كان لدينا صورة واحدة على الأقل $ iNumberOfPics = count ($ aPics) ؛ إذا ($ iNumberOfPics> 0) (// الآن هنا ستفعل كل ما تريد فعله بالصور // في هذا المثال ، يتم عرض الصور فقط لـ ($ i = 0 ؛ $ i< $iNumberOfPics ; $i++) {
echo $aPics[$i];
};
};
endwhile;
endif;
?>
توليد الرموز التلقائية
ميزة أخرى مستخدمة في WordPress هي استبدال الرموز تلقائيًا بصورة مبتسمة.
$ texte = "نص بابتسامة :-)"؛ صدى str_replace (":-)"، " "، texte)؛
تم حظر JavaScript في المستعرض الخاص بك. الرجاء تمكين JavaScript للموقع للعمل!
علامات الشريط
(PHP 3> = 3.0.8، PHP 4، PHP 5)
علامات الشريط- يزيل علامات HTML و PHP من السلسلةوصف
سلسلة علامات الشريط(سلسلة str [، string allowable_tags])تقوم هذه الوظيفة بإرجاع السلسلة النصية التي تمت إزالة علامات HTML و PHP منها. لإزالة العلامات ، يتم استخدام جهاز آلي مشابه لتلك المستخدمة في الوظيفة fgetss () .
يمكن استخدام الوسيطة الثانية الاختيارية لتحديد العلامات التي لا ينبغي إزالتها.
انتباهتعليق:تمت إضافة الوسيطة allowable_tags في PHP 3.0.13 و PHP 4.0b3. مع إصدارات PHP 4.3.0 يتم أيضًا إزالة تعليقات HTML.
لأن علامات الشريط ()لا تتحقق من صحة كود HTML ، فالعلامات غير المكتملة يمكن أن تؤدي إلى حذف النص الذي لم يتم تضمينه في العلامات.
مثال 1. مثال على الاستخدام علامات الشريط ()
نص $ = "فقرة.
بعض النص الإضافي "؛ echo strip_tags ($ text)؛ echo" \ n \ n ------- \ n "؛ // لا تحذفصدى strip_tags ($ text، "
")؛ // السماح ,,echo strip_tags ($ text، " ");
سيخرج هذا المثال:
فقرة. بعض المزيد من النص -------
فقرة.
بعض النص أكثر
انتباهلا تغير هذه الوظيفة سمات العلامات المحددة في الوسيطة allowable_tags ، بما في ذلك النمط و onmouseover.
منذ PHP 5.0.0 علامات الشريط ()آمن لمعالجة البيانات في شكل ثنائي.
هذه الوظيفة لها عيب كبير - إنها لصق الكلمات عند إزالة العلامات. بالإضافة إلى ذلك ، فإن الوظيفة بها نقاط ضعف. وظيفة بديلة مماثلة لـ strip_tags:
c "* -" dirty "تتم معالجة html بشكل صحيح عندما يمكن العثور على الرموز في قيم سمات العلامة< >* - تتم معالجة html المكسور بشكل صحيح * - التعليقات والنصوص والأنماط و PHP و Perl و ASP code و MS Word tags و CDATA مقطوعة * - يتم تنسيق النص تلقائيًا إذا كان يحتوي على كود html * - الحماية من عمليات التزوير مثل: "<
انظر أيضا وصف الوظيفة
آخر تحديث في 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. نتعلم حساسية حالة PHP
من ناحية أخرى ، فإن جميع المتغيرات حساسة لحالة الأحرف.
تأمل المثال التالي. البيان الأول فقط يعرض القيمة كمبلغ $ لأن $ amount و $ AMOUNT و $ amoUNT هي ثلاثة متغيرات مختلفة.
مثال - 2
") ؛ echo (" The Amount is: $ AMOUNT
") ؛ echo (" المبلغ هو: $ amoUNT
");
?>
المبلغ 200 المبلغ: المبلغ:
حساسية PHP للمسافات البيضاء
بشكل عام ، المسافة البيضاء غير مرئية على الشاشة ، بما في ذلك المسافات وعلامات التبويب وأحرف نهاية السطر ، أي إرجاع حرف. في PHP لا يهم المسافة البيضاء في الترميز. يمكنك فصل عبارة سطر واحد إلى أي عدد من الأسطر أو عدد من العبارات المنفصلة معًا في سطر واحد.
المثالان التاليان متماثلان:
مثال:
"؛ صدى" صفه هو: $ class و Roll No. هو $ roll_no "؛) student_info (" David Rayy "،" V "، 12)؟>
مثال: تقدم حساسية المسافات البيضاء
"؛ صدى" صفه هو: $ class و Roll No. هو $ 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 ..." في متصفح الويب.
& lt؟ php صدى "أهلاً بالعالم ..." ؛ ؟>
تخبر العلامات خادم الويب أن يتعامل مع كل شيء داخل العلامات كرمز PHP ليتم تشغيله. الكود بسيط جدا يستخدم وظيفة PHP المدمجة "echo" لعرض النص "Hello World ..." في صفحة الويب. يتم إرسال كل شيء خارج هذه العلامات مباشرة إلى المتصفح.
عرض مصور
دمج PHP و HTML
صيغة PHP قابلة للتطبيق فقط ضمن علامات PHP.
يمكن تضمين PHP في HTML ووضعها في أي مكان في المستند.
عندما يتم تضمين PHP في مستندات HTML وتحلل PHP هذا المستند ، فإنها تفسر القسم المرفق بعلامة فتح () من PHP وتجاهل باقي أجزاء المستند.
يتم عرض PHP و HTML معًا في المثال التالي.
تدرب هنا على الإنترنت:
عندما يوزع مترجم PHP الملف ، فإنه يبحث عن العلاماتالتي تشير إلى مكان بدء وانتهاء كود PHP. سيتجاهل المترجم أي شيء خارج زوج من علامات الفتح والختام (أي ، سيتم إعطاؤه لخادم الويب كما هو). على سبيل المثال ، يحتوي الملف الذي تم تمريره إلى مترجم PHP على الكود التالي:
سيتم تجاهل هذا من قبل المترجم الفوري وسيتم ببساطة تقديمه كما هو ، أولاً إلى خادم الويب ، والذي بدوره سيعطيه للمتصفح.
سيتم تجاهل هذا أيضًا من قبل المترجم الفوري وسيتم تمريره إلى خادم الويب كما هو.
إذا كان الملف يحتوي فقط على كود PHP أو كان موجودًا في نهاية الملف ، أي أنه لا يوجد شيء بعده ، فمن الأفضل حذف علامة الإغلاق (لا تحدد). يساعد هذا في تجنب إضافة مسافات بيضاء عشوائية بعد علامة نهاية PHP ، والتي يمكن أن تسبب تأثيرات غير مرغوب فيها.
تسمح PHP أيضًا باستخدام علامة مفتوحة قصيرة вместо
echo "Hello World!"; ?>
أحرف المسافات
في كود PHP ، يمكنك استخدام أحرف المسافات البيضاء: المسافات وعلامات الجدولة وفواصل الأسطر. عدد أحرف المسافات البيضاء غير محدود ويعتمد على تفضيلات المبرمج ، الذي يتمثل هدفه الرئيسي في إنشاء نص برنامج واضح وسهل القراءة (كود المصدر).
المثال أدناه هو كود PHP الذي يستخدم مسافة بيضاء:
يمكن كتابة رمز المثال على سطر واحد دون استخدام مسافة بيضاء ، ولكن هذا الرمز سيكون أقل قابلية للقراءة: