الفرق بين المراجعتين لصفحة: «PHP/addslashes»
هارون-بوكرش (نقاش | مساهمات) لا ملخص تعديل |
لا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة addslashes() في PHP }}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>addslashes()</code> في PHP}}</noinclude> | ||
(PHP 4, PHP 5, PHP 7) | |||
تضيف الدالة <code>addslashes()</code> الخطوط المائلة العكسية (backslashes). | |||
== الوصف == | |||
<syntaxhighlight lang="php"> | |||
string addslashes (string $str). | |||
</syntaxhighlight>تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي: | |||
* علامات الاقتباس المفردة (') | |||
* علامات الاقتباس المزدوجة (") | |||
* الخطوط المائلة العكسية (\) | |||
* NUL (البايت NUL) | |||
تستخدم الدالة <code>addslashes()</code> لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP:<syntaxhighlight lang="php"> | |||
<?php | |||
$str = "O'Reilly?"; | |||
eval("echo '" . addslashes($str) . "';"); | |||
?> | |||
</syntaxhighlight>قبل نسخة 5.4.0 للغة PHP، كانت ميزة <code>magic_quotes_gpc</code> مُفَعلة تلقائيًا، إذ تُطَبق الدالة <code>addslashes()</code> على كل من بيانات GET و POST و COOKIE. لذلك تجنب استخدام <code>addslashes()</code> على سلسلة نصية طُبِقَت عليها <code>magic_quotes_gpc</code> من قبل وإلا فإن السلسلة النصية ستُهرَب مرتين. تسمح الدالة <code>[[PHP/magic quotes gpc|magic_quotes_gpc()]]</code> بالتحقق من الميزة <code>magic_quotes_gpc</code> إن كانت مفعلة أم لا. | |||
يستعمل البعض الدالة <code>addslashes()</code> خطأً لمنع «حقن شيفرات SQL» أي SQL Injection. بدلًا من ذلك ينبغي استعمال الدوال الخاصة بالسلاسل النصية لقواعد البيانات. | |||
== المعاملات == | |||
=== <code>str</code> === | |||
السلسلة النصية التي نريد تهريبها. | |||
== أمثلة == | |||
المثال 1: مثال بسيط عن الدالة <code>addslashes()</code><syntaxhighlight lang="php"> | |||
<?php | |||
$str = "Is your name O'Reilly?"; | |||
// Is your name O\'Reilly? | |||
echo addslashes($str); | |||
?> | |||
</syntaxhighlight> | |||
== انظر أيضًا == | |||
* <code>[[PHP/stripcslashes|stripcslashes()]]</code>: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالة <code>[[PHP/addcslashes|addcslashes()]]</code>. | |||
* <code>[[PHP/stripslashes|stripslashes()]]</code>: حذف الخطوط المائلة العكسية. | |||
* <code>[[PHP/addcslashes|addcslashes()]]</code>: تهريب سلسلة نصية بإستعمال الخطوط المائلة العكسية على نمط لغة C. | |||
* <code>[[PHP/htmlspecialchars|htmlspecialchars()]]</code>: تحويل المحارف الخاصة مدخلات HTML. | |||
* <code>[[PHP/quotemeta|quotemeta()]]</code>: اقتباس المحارف الخاصة. | |||
* <code>[[PHP/get magic quotes gpc|get_magic_quotes_gpc()]]</code>: تتفقد حالة <code>magic_quotes_gpc</code> إن كانت مفعلةً أم لا. | |||
== مصادر == | |||
* [http://php.net/manual/en/function.addslashes.php صفحة الدالة addslashes في توثيق PHP الرسمي]. | |||
[[تصنيف:PHP]] | |||
[[تصنيف:PHP Function]] | |||
[[تصنيف:PHP String]] |
المراجعة الحالية بتاريخ 15:25، 5 أبريل 2018
(PHP 4, PHP 5, PHP 7)
تضيف الدالة addslashes()
الخطوط المائلة العكسية (backslashes).
الوصف
string addslashes (string $str).
تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي:
- علامات الاقتباس المفردة (')
- علامات الاقتباس المزدوجة (")
- الخطوط المائلة العكسية (\)
- NUL (البايت NUL)
تستخدم الدالة addslashes()
لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP:
<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>
قبل نسخة 5.4.0 للغة PHP، كانت ميزة magic_quotes_gpc
مُفَعلة تلقائيًا، إذ تُطَبق الدالة addslashes()
على كل من بيانات GET و POST و COOKIE. لذلك تجنب استخدام addslashes()
على سلسلة نصية طُبِقَت عليها magic_quotes_gpc
من قبل وإلا فإن السلسلة النصية ستُهرَب مرتين. تسمح الدالة magic_quotes_gpc()
بالتحقق من الميزة magic_quotes_gpc
إن كانت مفعلة أم لا.
يستعمل البعض الدالة addslashes()
خطأً لمنع «حقن شيفرات SQL» أي SQL Injection. بدلًا من ذلك ينبغي استعمال الدوال الخاصة بالسلاسل النصية لقواعد البيانات.
المعاملات
str
السلسلة النصية التي نريد تهريبها.
أمثلة
المثال 1: مثال بسيط عن الدالة addslashes()
<?php
$str = "Is your name O'Reilly?";
// Is your name O\'Reilly?
echo addslashes($str);
?>
انظر أيضًا
stripcslashes()
: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالةaddcslashes()
.stripslashes()
: حذف الخطوط المائلة العكسية.addcslashes()
: تهريب سلسلة نصية بإستعمال الخطوط المائلة العكسية على نمط لغة C.htmlspecialchars()
: تحويل المحارف الخاصة مدخلات HTML.quotemeta()
: اقتباس المحارف الخاصة.get_magic_quotes_gpc()
: تتفقد حالةmagic_quotes_gpc
إن كانت مفعلةً أم لا.