الفرق بين المراجعتين لصفحة: «PHP/addcslashes»
ط إضافة عنوان الصفحة والتصنيفات |
لا ملخص تعديل |
||
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>addcslashes()</code> في PHP}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>addcslashes()</code> في PHP}}</noinclude> | ||
تضيف الدالة addcslashes() الخطوط المائلة العكسية (backslashes) كما في لغة C. | تضيف الدالة <code>addcslashes()</code> الخطوط المائلة العكسية (backslashes) كما في لغة C. | ||
== الوصف == | == الوصف == | ||
سطر 9: | سطر 9: | ||
تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف الموجودة في المعامل charlist. | تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف الموجودة في المعامل charlist. | ||
== المعاملات == | |||
=== | === <code>str</code> === | ||
تحتوي السلسلة النصية المُرَاد إضافة الخطوط المائلة العكسية لها. | تحتوي السلسلة النصية المُرَاد إضافة الخطوط المائلة العكسية لها. | ||
=== | === <code>charlist</code> === | ||
تحتوي المحارف التي ستُضاف الخطوط المائلة العكسية عندها. فإذا احتوى المعامل charlist على أحرف على شكل n\ أو \r وما إلى ذلك من القيم فستتعامل هذه الدالة معها بنمط لغة C، أما العناصر الأخرى غير الأبجدية أو الرقمية والتي لها رمز ASCII أقل من 32 وأعلى من 126 فستُحَول إلى التمثيل الثُماني للتعامل معها. | تحتوي المحارف التي ستُضاف الخطوط المائلة العكسية عندها. فإذا احتوى المعامل <code>charlist</code> على أحرف على شكل <code>n\</code> أو <code>\r</code> وما إلى ذلك من القيم فستتعامل هذه الدالة معها بنمط لغة C، أما العناصر الأخرى غير الأبجدية أو الرقمية والتي لها رمز ASCII أقل من 32 وأعلى من 126 فستُحَول إلى التمثيل الثُماني للتعامل معها. | ||
عند تعريف مجال من المحارف عند ضبط قيمة المعامل | عند تعريف مجال من المحارف عند ضبط قيمة المعامل <code>charlist</code>، فاحرص على معرفة كل القيم والأحرف الموجودة بين حديّ بداية ونهاية ذاك المجال.<syntaxhighlight lang="php"> | ||
<?php | <?php | ||
echo addcslashes('foo[ ]', 'A..z'); | echo addcslashes('foo[ ]', 'A..z'); | ||
//"\f\o\o\[ \]" | //"\f\o\o\[ \]" | ||
// ستُهرِّب جميع المحارف، سواءً كانت كبيرةً أم صغيرة | // ستُهرِّب جميع المحارف، سواءً كانت كبيرةً أم صغيرة | ||
// بما في ذلك المحارف الآتية: | // بما في ذلك المحارف الآتية: | ||
// [\]^_` | // [\]^_` | ||
?> | ?> | ||
سطر 35: | سطر 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
إذا كانت قيمة رمز ASCII لأوّل محرف في المجال أعلى من قيمة رمز ASCII للمحرف الثاني في المجال، فلن يُنشَأ أي مجال، بل سيُستَخدم محرف البداية والنهاية والنقطة بينهما لتهريب القيمة المُمرَّرة إلى الدالة. يُمكِن استخدام الدالة ()ord لمعرفة قيمة رمز ASCII لأحد المحارف.<syntaxhighlight lang="php"> | إذا كانت قيمة رمز ASCII لأوّل محرف في المجال أعلى من قيمة رمز ASCII للمحرف الثاني في المجال، فلن يُنشَأ أي مجال، بل سيُستَخدم محرف البداية والنهاية والنقطة بينهما لتهريب القيمة المُمرَّرة إلى الدالة. يُمكِن استخدام الدالة <code>[[PHP/ord|()ord]]</code> لمعرفة قيمة رمز ASCII لأحد المحارف.<syntaxhighlight lang="php"> | ||
<?php | <?php | ||
echo addcslashes("zoo['.']", 'z..A'); | echo addcslashes("zoo['.']", 'z..A'); | ||
// \zoo['\.'] | // \zoo['\.'] | ||
?> | ?> | ||
</syntaxhighlight>انتبه عند محاولة تهريب المحارف 0 و a و b و f و n و r و t و v لأنه ستحوّل إلى 0\ و a\ و b\ و f\ و n\ و r\ و t\ و v\ والتي تعدّ محارف تهريب مُعَرَّفة مسبقًا لدى لغة C واللغات البرمجية المشتقة منها، كما هو حال في لغة PHP. مما يؤدي إلى عدم الحصول على النتيجة المرغوبة في حال استعمال مخارج الدالة addcslashes() لتوليد الكود البرمجي بواسطة هذه الأحرف. | </syntaxhighlight>انتبه عند محاولة تهريب المحارف 0 و a و b و f و n و r و t و v لأنه ستحوّل إلى <code>0\</code> و <code>a\</code> و <code>b\</code> و <code>f\</code> و <code>n\</code> و <code>r\</code> و <code>t\</code> و <code>v\</code> والتي تعدّ محارف تهريب مُعَرَّفة مسبقًا لدى لغة C واللغات البرمجية المشتقة منها، كما هو حال في لغة PHP. مما يؤدي إلى عدم الحصول على النتيجة المرغوبة في حال استعمال مخارج الدالة <code>addcslashes()</code> لتوليد الكود البرمجي بواسطة هذه الأحرف. | ||
== القيم المعادة == | |||
تُعيد الدالة السلسلة النصية مع تهريب (escape) المحارف فيها. | تُعيد الدالة السلسلة النصية مع تهريب (escape) المحارف فيها. | ||
== سجل التغييرات == | |||
{| class="wikitable" | {| class="wikitable" | ||
!الإصدار | |||
!الوصف | |||
|- | |- | ||
|5.2.5 | |5.2.5 | ||
|أضيفت سلسلتا التهريب /v و /f. | |أضيفت سلسلتا التهريب <code>/v</code> و <code>/f</code>. | ||
|} | |} | ||
== أمثلة == | |||
ستُهرِّب كل المحارف التي لها رمز ASCII قيمته محصورة بين 0 و 31 إذا كانت قيمة المتغير charlist تساوي "\0..\37" | ستُهرِّب كل المحارف التي لها رمز ASCII قيمته محصورة بين 0 و 31 إذا كانت قيمة المتغير <code>charlist</code> تساوي <code>"\0..\37"</code>. | ||
المثال 1: مثال بسيط عن الدالة <code>addcslashes()</code><syntaxhighlight lang="php"> | |||
<syntaxhighlight lang="php"> | |||
<?php | <?php | ||
سطر 71: | سطر 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | |||
* stripcslashes(): حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالة addcslashes(). | * <code>[[PHP/stripcslashes|stripcslashes()]]</code>: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالة <code>addcslashes()</code>. | ||
* stripslashes(): حذف الخطوط المائلة العكسية. | * <code>[[PHP/stripslashes|stripslashes()]]</code>: حذف الخطوط المائلة العكسية. | ||
* addslashes(): | * <code>[[PHP/addslashes|addslashes()]]</code>: تهريب سلسلة رموز باستعمال الخطوط المائلة العكسية. | ||
* htmlspecialchars(): تحويل الرموز الخاصة إلى عناصر HTML. | * <code>[[PHP/htmlspecialchars|htmlspecialchars()]]</code>: تحويل الرموز الخاصة إلى عناصر HTML. | ||
* quotemeta(): اقتباس المحارف الخاصة. | * <code>[[PHP/quotemeta|quotemeta()]]</code>: اقتباس المحارف الخاصة. | ||
== مصادر == | |||
* صفحة الدالة addcslashes في توثيق PHP الرسمي. | * [http://php.net/manual/en/function.addcslashes.php صفحة الدالة addcslashes في توثيق PHP الرسمي]. | ||
[[تصنيف:PHP]] | [[تصنيف:PHP]] | ||
[[تصنيف:PHP Function]] | [[تصنيف:PHP Function]] | ||
[[تصنيف:PHP String]] | [[تصنيف:PHP String]] |
المراجعة الحالية بتاريخ 15:25، 5 أبريل 2018
تضيف الدالة addcslashes()
الخطوط المائلة العكسية (backslashes) كما في لغة C.
الوصف
string addcslashes ( string $str , string $charlist )
تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف الموجودة في المعامل charlist.
المعاملات
str
تحتوي السلسلة النصية المُرَاد إضافة الخطوط المائلة العكسية لها.
charlist
تحتوي المحارف التي ستُضاف الخطوط المائلة العكسية عندها. فإذا احتوى المعامل charlist
على أحرف على شكل n\
أو \r
وما إلى ذلك من القيم فستتعامل هذه الدالة معها بنمط لغة C، أما العناصر الأخرى غير الأبجدية أو الرقمية والتي لها رمز ASCII أقل من 32 وأعلى من 126 فستُحَول إلى التمثيل الثُماني للتعامل معها.
عند تعريف مجال من المحارف عند ضبط قيمة المعامل charlist
، فاحرص على معرفة كل القيم والأحرف الموجودة بين حديّ بداية ونهاية ذاك المجال.
<?php
echo addcslashes('foo[ ]', 'A..z');
//"\f\o\o\[ \]"
// ستُهرِّب جميع المحارف، سواءً كانت كبيرةً أم صغيرة
// بما في ذلك المحارف الآتية:
// [\]^_`
?>
إذا كانت قيمة رمز ASCII لأوّل محرف في المجال أعلى من قيمة رمز ASCII للمحرف الثاني في المجال، فلن يُنشَأ أي مجال، بل سيُستَخدم محرف البداية والنهاية والنقطة بينهما لتهريب القيمة المُمرَّرة إلى الدالة. يُمكِن استخدام الدالة ()ord
لمعرفة قيمة رمز ASCII لأحد المحارف.
<?php
echo addcslashes("zoo['.']", 'z..A');
// \zoo['\.']
?>
انتبه عند محاولة تهريب المحارف 0 و a و b و f و n و r و t و v لأنه ستحوّل إلى 0\
و a\
و b\
و f\
و n\
و r\
و t\
و v\
والتي تعدّ محارف تهريب مُعَرَّفة مسبقًا لدى لغة C واللغات البرمجية المشتقة منها، كما هو حال في لغة PHP. مما يؤدي إلى عدم الحصول على النتيجة المرغوبة في حال استعمال مخارج الدالة addcslashes()
لتوليد الكود البرمجي بواسطة هذه الأحرف.
القيم المعادة
تُعيد الدالة السلسلة النصية مع تهريب (escape) المحارف فيها.
سجل التغييرات
الإصدار | الوصف |
---|---|
5.2.5 | أضيفت سلسلتا التهريب /v و /f .
|
أمثلة
ستُهرِّب كل المحارف التي لها رمز ASCII قيمته محصورة بين 0 و 31 إذا كانت قيمة المتغير charlist
تساوي "\0..\37"
.
المثال 1: مثال بسيط عن الدالة addcslashes()
<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>
انظر أيضًا
stripcslashes()
: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالةaddcslashes()
.stripslashes()
: حذف الخطوط المائلة العكسية.addslashes()
: تهريب سلسلة رموز باستعمال الخطوط المائلة العكسية.htmlspecialchars()
: تحويل الرموز الخاصة إلى عناصر HTML.quotemeta()
: اقتباس المحارف الخاصة.