تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Feb 2005-
#1 (permalink)  
الفرق بين علامات التنصيص في PHP (درس)


ملاحظه : اشارك "مهتم" في اسمه مؤقتا حتى استطيع التسجيل..

السلام عليكم,,,

كثير من مبرمجين PHP (المبتدئين خاصة) يتقعدون ان التعبيرين التاللين متشابهين تماما من ناحية الاداء :
كود PHP:
echo "welcome to swalif soft"
كود PHP:
echo 'welcome to swalif soft'
في الحقيقه انهم يعملون بطريقه مختلفه نوعا ما , و كل وحده يتفرض تستعملها بوضع معين. الفرق الاساسي بين التعبيرين ان علامتي التنصيص (") تسمح لك انك تضع متغيرات او رموز خاصه (مثل \n) في وسط الجمله مثل :
كود PHP:
echo "your name is $name \n welcome"
لاحظ وجود متغير و رمز \n للسطر الجديد. بعد ما يتنفذ هذا الامر بيكون الناتج بالمتصفح :

your name is khalid
welcome

على افتراض ان متغير $name كان يحمل اسم خالد ; تم استبدال المتغير بقيمته في الجمله , و الرمز بسطر جديد.

لكن فرضا لو اعدنا كتابة الجمله بالطريقه هذي :

كود PHP:
echo 'your name is $name \n welcome'
بيكون الناتج بالمتصفح :

your name is $name \n welcome

يعني الجمله نفس ماهي بالظبط ما تغير فيها ولا شي.

طيب وش الفرق بين الجملتين من ناحية الاداء؟

الفرق ان الطريقه الاولى (بعلامتين تنصيص) تحتاج PHP انه يبحث فيها عن متغيرات و رموز خاصه عشان يستبدلها , بينما اذا استعملت الثانيه (بعلامة تنصيص وحده) فراح يعرف PHP انه كل شي بينطبع زي ماهو تماما بدون استبدال اي شي. يعني اذا كنت تبي تطبع جمل ما فيها متغيرات او رموز خاصه فليش تستعمل علامتين تنصيص و تخلي PHP تبحث في جملتك مع ان مافيها شي اساسا؟ صحيح ان الفرق في السرعه قد يكون بسيط جدا , لكن ممكن يبين معك في البرامج اللي تتطلب طباعة اشياء كثيره للمتصفح.

و ممكن تستعيض عن علامتين التنصيص بالعلامه الوحده في اغلب (او جميع) المواقف , يعني في الجمله السابقه , ممكن نكتبها بالشكل التالي :
كود PHP:
echo 'your name is ' $name "\n" 'welcome'
هنا راح تطبع الجزء الاول , ثم تدمجه مع محتويات المتغير , ثم تضيف سطر جديد ثم تطبع الجزء الاخير. بكذا تكون الطباعه اسرع (نوعا ما) و حتى اسهل للمبرمجين الثانيين اذا جو يقرون الكود تبعك.


تحياتي,
saudi_php@hotmail.com






مهتم غير متواجد حالياً   قديم 07-09-2005, 07:44 PM
رد مع اقتباس
-
#2 (permalink)  

ألف شكر أخي
أريد معرفة الرموز مثل

n\
و
t\
....






  قديم 07-09-2005, 10:43 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2005-
#3 (permalink)  

كود:
\n = new line

\t = tab






__________________
"من علمني حرفا صرت له عبدا"
|+|PHP|+|loowy|+|PHP|+|
"عامل الناس بما تحب أن يعاملوك به"
لـــــــــــــــــــــــــــــؤي
3bdullah غير متواجد حالياً   قديم 08-09-2005, 03:04 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2005-
#4 (permalink)  

اقتباس:
ألف شكر أخي
أريد معرفة الرموز مثل

n\
و
t\
....
أتوقع انك تبغى أشياء غير التاب والسطر الجديد ؟؟ والا....
عموماً... اخذت الرموز من صفحة الـ addslashes في php.net

http://uk.php.net/addcslashes

والمعاني طلعتها من النت
والله العالم

كود:
\0=Null
\a=alarm
\b=backspace
\f=form feed
\n=newline
\r=carriage return
\t=tab
\v=vertical tab
بالتوفيق
-----------------
مستعير العضوية






عسول غير متواجد حالياً   قديم 08-09-2005, 06:03 AM
رد مع اقتباس
-
#5 (permalink)  

جزاك الله خيرا






  قديم 08-09-2005, 12:09 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2005-
#6 (permalink)  

شكرا لك , وجزاك الله خير .






__________________
php.php @ hotmail.com
<?php badr ?> غير متواجد حالياً   قديم 08-09-2005, 02:25 PM
رد مع اقتباس
صاحب موقع مهارات سوفت
تاريخ التسجيل: Apr 2004-
#7 (permalink)  

شكراً لك اخي الكريم ..
الف شكر لك ..






__________________
██████████
██████████
██████████


مهارات سوفت
مهارات سوفت للبرامج وتطوير المواقع والمنتديات والتبادل التجاري.


للتواصل ..
00967733873335

باب الحارة .. للبيع ..!!
مُجَاهِد غير متواجد حالياً   قديم 08-09-2005, 02:58 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Dec 2004-
#8 (permalink)  

شكرا لك يامهتم

درس استفدت منه






__________________
سبحان الله وبحمده ،، سبحان الله العظيم
تذكر هذه الآيه قبل ان تشارك( مَا يَلْفِظُ مِن قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ)
طير شلوى غير متواجد حالياً   قديم 08-09-2005, 03:33 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2004-
#9 (permalink)  

جزاك الله خير اخوي






__________________
سبحان الله وبحمده سبحان الله العظيم
alsahernet غير متواجد حالياً   قديم 09-09-2005, 01:23 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2004-
#10 (permalink)  

نقطة مهمة ورائعة


وليس غريب على الاخ مهتم هذه الاشياء


دمت لنا معلما






__________________
نعمان لخدمات الإنترنت والتسويق
www.no3man.biz
E-mail & MSN
admin@no3man.biz

------------
السعادة هي رحلة وليست محطة تصلها
لا وقت أفضل كي تكون سعيداً أكثر من الآن
عش وتمتع باللحظة الحاضرة
نعمان غير متواجد حالياً   قديم 10-09-2005, 05:40 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2005-
#11 (permalink)  

مهتم

معليش بصراحة لما قريت الدرس في البداية... طنشت
قلت ماراح تفرق واجد....

اليوم جبت لي نص عربي... حجمه تقريباً 1.65 ميجا...

وسويت benchmark للصفحة...
وطبعته باستخدام " وباستخدام '....

بصراحة ما طلع فيه أي فرق معي
كلهم استغرقوا نفس الوقت تقريباً .....(أقول تقريباً لأن في الحقيقة " أخذت وقت أقل من ' )...
طبعاً كررت التجربة 10 مرات لكل استخدام... وأخذت الأقل والأكثر.... المعدل ما اخذته... لكن تقريباً نفس الشي...

النص مجرد نص... بدون أي متغيرات....

ياليت تسوي التجربة... وتقولنا النتايج اللي تطلع معك (أو أي واحد من الشباب)...

نسيت أقول:
أستخدم PHP 5.1.0RC1
أستخدمه كـ CGI مو كـ apache module....
الأباتشي نسخة 1.3.23

بالتوفيق...
----------------
مستعير العضوية






عسول غير متواجد حالياً   قديم 10-09-2005, 12:03 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2005-
#12 (permalink)  

اشكر الجميع على ردودهم , بس ترا انا مو مهتم , انا استعملت اسم "مهتم" مؤقتا و الحين اكتب بهذا الاسم

عسول , انا نفسي ما شفت اي فرق لما اختبرته بـxDebug , عشان كذا قلت :
اقتباس:
صحيح ان الفرق في السرعه قد يكون بسيط جدا , لكن ممكن يبين معك في البرامج اللي تتطلب طباعة اشياء كثيره للمتصفح.
اخوي عسول , جرب تختبر نفس المثال اللي حطيتهم بالدرس , انا طلعت النتيجه تختلف عندي بحث ' تفوقت على " .

هذي نتيجة الاختبارين عندي باستخدام xDebug :
كود PHP:
echo "your name is $name \n welcome"
المرة الاولى : 0.0000219345 ثواني
المره الثانيه : 0.0000209808 ثواني
المره الثالثه : 0.0000221729 ثواني

كود PHP:
echo 'your name is ' $name "\n" 'welcome'
المره الاولى : 0.0000169277 ثواني
المره الثانيه : 0.0000178814 ثواني
المره الثالثه : 0.0000190735 ثواني

يعني الفرق يكاد لا يذكر , لكن مثل ما قلت بالموضوع ممكن الفرق يبين اذا كان البرنامج اكبر.

تحياتي






2600ma غير متواجد حالياً   قديم 10-09-2005, 01:09 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Feb 2005-
#13 (permalink)  

السلام عليكم

الموضوع ممتع...

أنا في المرة الماضية بس جربت نص بدون متغيرات....
فما كان فيه فرق أبداً....

بعد التجارب....
لما تدرج متغير في النص... هنا يآخذ وقت...
لكن لو استخدمت " لإدراج نص فقط... ما راح تفرق أبد ((تمت التجربة من قبل على نص حجمه ميجا ونص))..
=======
جرب:
كود PHP:
echo "your name is " $name "\nwelcome"
وبالمقابل جرب:
كود PHP:
echo "your name is $name\nwelcome"
بس بصراحة ما كنت متوقع انها بتفرق لو أدرجت المتغير داخل العلامات أو خارجها

تسلم أخوي على التنبيه الرائع...
------------------
مستعير العضوية






عسول غير متواجد حالياً   قديم 11-09-2005, 02:29 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2003-
#14 (permalink)  

جزاك الله خير اخوي






عيون العرب غير متواجد حالياً   قديم 11-09-2005, 04:01 AM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 08:19 AM بتوقيت المملكة العربية السعودية