الفرق بين المراجعتين ل"PHP/str replace"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
 
+
<noinclude>{{DISPLAYTITLE:الدالة <code>str_replace()</code>‎ في PHP}}</noinclude>
= الدالة str_replace()‎ في PHP =
 
 
(PHP 4, PHP 5, PHP 7)
 
(PHP 4, PHP 5, PHP 7)
  
تبدِّل الدالة str_replace()‎ كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال.
+
تبدِّل الدالة <code>str_replace()‎</code> كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال.
  
 
== الوصف ==
 
== الوصف ==
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
 
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
</syntaxhighlight>تعيد الدالة str_replace()‎ سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل search في المعامل subject إلى قيمة المعامل replace المعطاة.
+
</syntaxhighlight>تعيد الدالة <code>str_replace()‎</code> سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل <code>search</code> في المعامل <code>subject</code> إلى قيمة المعامل <code>replace</code> المعطاة.
  
إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة preg_replace()‎.
+
إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة <code>[[PHP/preg replace|preg_replace()‎]]</code>.
  
 
== المعاملات ==
 
== المعاملات ==
إذا كان المعامل search والمعامل replace مصفوفتين، فإن الدالة str_replace()‎ تأخذ قيمة من كل مصفوفة وتستخدمها للبحث والاستبدال في المعامل subject. إذا كان المعامل replace يحتوي على قيم أقل من المعامل search، فستستخدم سلسلة نصية فارغة لبقية قيم الاستبدال. إذا كان المعامل search مصفوفة والمعامل replace سلسلة نصية، فستستخدم سلسلة الاستبدال هذه لكل قيمة من قيم المعامل search. ومع ذلك، فإن العكس ليس له معنى.
+
إذا كان المعامل <code>search</code> والمعامل <code>replace</code> مصفوفتين، فإن الدالة <code>str_replace()‎</code> تأخذ قيمة من كل مصفوفة وتستخدمها للبحث والاستبدال في المعامل <code>subject</code>. إذا كان المعامل <code>replace</code> يحتوي على قيم أقل من المعامل <code>search</code>، فستستخدم سلسلة نصية فارغة لبقية قيم الاستبدال. إذا كان المعامل <code>search</code> مصفوفة والمعامل <code>replace</code> سلسلة نصية، فستستخدم سلسلة الاستبدال هذه لكل قيمة من قيم المعامل <code>search</code>. ومع ذلك، فإن العكس ليس له معنى.
  
إذا كان المعامل search أو المعامل replace مصفوفة، فستعالَج عناصرها من العنصر الأول إلى العنصر الأخير.
+
إذا كان المعامل <code>search</code> أو المعامل <code>replace</code> مصفوفة، فستعالَج عناصرها من العنصر الأول إلى العنصر الأخير.
  
=== search ===
+
=== <code>search</code> ===
 
القيمة التي يُبْحَث عنها والمعروفة باسم الإبرة (needle). يمكن استخدام مصفوفة لتعيين قيم متعددة.
 
القيمة التي يُبْحَث عنها والمعروفة باسم الإبرة (needle). يمكن استخدام مصفوفة لتعيين قيم متعددة.
  
=== replace ===
+
=== <code>replace</code> ===
 
قيمة الاستبدال التي تحل محل قيم المعامل search التي تم عُثِرَ عليها. يمكن استخدام مصفوفة لتعيين بدائل متعددة.
 
قيمة الاستبدال التي تحل محل قيم المعامل search التي تم عُثِرَ عليها. يمكن استخدام مصفوفة لتعيين بدائل متعددة.
  
=== subject ===
+
=== <code>subject</code> ===
 
السلسلة أو المصفوفة التي يُبْحَث عنها وتستبدل، والمعروفة باسم كومة القش (haystack).
 
السلسلة أو المصفوفة التي يُبْحَث عنها وتستبدل، والمعروفة باسم كومة القش (haystack).
  
إذا كان المعامل subject مصفوفةً، فستجرى عملية البحث والاستبدال مع كل مَدْخَل للمعامل subject، وتكون القيمة المعادة مصفوفة أيضًا.
+
إذا كان المعامل <code>subject</code> مصفوفةً، فستجرى عملية البحث والاستبدال مع كل مَدْخَل للمعامل <code>subject</code>، وتكون القيمة المعادة مصفوفة أيضًا.
  
=== count ===
+
=== <code>count</code> ===
إذا مُرِّرَ المعامل count، فستضبط قيمته إلى عدد عمليات الاستبدال التي نُفِّذَت.
+
إذا مُرِّرَ المعامل <code>count</code>، فستضبط قيمته إلى عدد عمليات الاستبدال التي نُفِّذَت.
  
 
== القيم المعادة ==
 
== القيم المعادة ==
تعيد الدالة str_replace()‎ سلسلة نصية أو مصفوفة بها القيم المستبدلة.
+
تعيد الدالة <code>str_replace()‎</code> سلسلة نصية أو مصفوفة بها القيم المستبدلة.
  
 
== أمثلة ==
 
== أمثلة ==
المثال 1: مثال بسيط على الدالة str_replace()‎  <syntaxhighlight lang="php">
+
المثال 1: مثال بسيط على الدالة <code>str_replace()‎</code> <syntaxhighlight lang="php">
 
<?php
 
<?php
 
 
// <body text='black'>
 
// <body text='black'>
 
 
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
 
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
 
 
// Hll Wrld f PHP
 
// Hll Wrld f PHP
 
 
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
 
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
 
 
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
 
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
 
 
$newphrase = str_replace($healthy, $yummy, $phrase);
 
$newphrase = str_replace($healthy, $yummy, $phrase);
 
 
// 2
 
// 2
 
 
$str = str_replace("ll", "", "good golly miss molly!", $count);
 
$str = str_replace("ll", "", "good golly miss molly!", $count);
 
 
echo $count;
 
echo $count;
 
 
?>
 
?>
</syntaxhighlight>المثال 2: مثال على أهمية ترتيب القيم في الدالة str_replace()‎
+
</syntaxhighlight>المثال 2: مثال على أهمية ترتيب القيم في الدالة <code>str_replace()‎</code>
  
يحول المثال السطر \r\n أولاً حتى لا يحول مرتين.
+
يحول المثال الأول السطر ‎<code>\r\n</code> أولاً حتى لا يحول مرتين. وسيعيد المثل الثاني  الحرف F لأنه استبدل A بالحرف B ، ثم استبدل B بالحرف C ، وهكذا ... وأخيرا استبدل E بالحرف F ، بسبب أنَّ الاستبدالات تجرى من اليسار إلى اليمين.<syntaxhighlight lang="php">
 
 
ويعيد الحرف F لأنه استبدل A بـ B ، ثم استبدل B بـ C ، وهكذا ...
 
 
 
وأخيرا استبدل E بـ F ، بسبب الاستبدالات من اليسار إلى اليمين.<syntaxhighlight lang="php">
 
 
<?php
 
<?php
 
+
// ترتيب الاستبدال
//  ترتيب الاستبدال
 
 
 
 
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
 
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
 
 
$order   = array("\r\n", "\n", "\r");
 
$order   = array("\r\n", "\n", "\r");
 
 
$replace = '<br />';
 
$replace = '<br />';
  
 +
// الناتج هو F
 
$newstr = str_replace($order, $replace, $str);
 
$newstr = str_replace($order, $replace, $str);
 
 
$search  = array('A', 'B', 'C', 'D', 'E');
 
$search  = array('A', 'B', 'C', 'D', 'E');
 
 
$replace = array('B', 'C', 'D', 'E', 'F');
 
$replace = array('B', 'C', 'D', 'E', 'F');
 
 
$subject = 'A';
 
$subject = 'A';
 
 
echo str_replace($search, $replace, $subject);
 
echo str_replace($search, $replace, $subject);
  
// Outputs: apearpearle pear
+
// apearpearle pear
 
 
 
// لنفس السبب المذكور أعلاه.
 
// لنفس السبب المذكور أعلاه.
 
 
$letters = array('a', 'p');
 
$letters = array('a', 'p');
 
$fruit  = array('apple', 'pear');
 
$fruit  = array('apple', 'pear');
سطر 99: سطر 75:
 
ملاحظة: هذه الدالة آمنة ثنائيًا (binary-safe).
 
ملاحظة: هذه الدالة آمنة ثنائيًا (binary-safe).
  
تحذير: نظرًا لأنَّ الدالة str_replace()‎ تجري عملية الاستبدال من اليسار إلى اليمين، فقد تستبدل قيمةً أُدْخِلَتْ مسبقًا عند إجراء عمليات استبدال متعددة. راجع المثال 2 في هذه الصفحة لمزيدٍ من المعلومات.
+
تحذير: نظرًا لأنَّ الدالة <code>str_replace()‎</code> تجري عملية الاستبدال من اليسار إلى اليمين، فقد تستبدل قيمةً أُدْخِلَتْ مسبقًا عند إجراء عمليات استبدال متعددة. راجع المثال 2 في هذه الصفحة لمزيدٍ من المعلومات.
  
ملاحظة: هذه الدالة حساسة لحالة الأحرف. استخدم الدالة str_ireplace()‎ لاستبدال غير حساس لحالة الأحرف.
+
ملاحظة: هذه الدالة حساسة لحالة الأحرف. استخدم الدالة <code>[[PHP/str ireplace|str_ireplace()‎]]</code> لاستبدال غير حساس لحالة الأحرف.
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الدالة str_ireplace()‎: نسخة غير حساسة لحالة الأحرف من الدالة str_replace()‎.
+
* الدالة <code>[[PHP/str ireplace|str_ireplace()‎]]</code>: نسخة غير حساسة لحالة الأحرف من الدالة <code>str_replace()‎</code>.
* الدالة substr_replace()‎: استبدال النص داخل جزء من سلسلة نصية.
+
* الدالة <code>[[PHP/substr replace|substr_replace()‎]]</code>: استبدال النص داخل جزء من سلسلة نصية.
* الدالة preg_replace()‎: إجراء عملية بحث واستبدال باستعمال التعابير النمطية (regular expressions).
+
* الدالة <code>[[PHP/preg replace|preg_replace()‎]]</code>: إجراء عملية بحث واستبدال باستعمال التعابير النمطية (regular expressions).
* الدالة strtr()‎: تحويل الأحرف أو استبدال سلاسل نصية فرعية.
+
* الدالة <code>[[PHP/strtr|strtr()‎]]</code>: تحويل الأحرف أو استبدال سلاسل نصية فرعية.
  
 
== مصادر ==
 
== مصادر ==
* [http://php.net/manual/en/function.str-replace.php صفحة الدالة str_replace في توثيق PHP الرسمي.]  
+
* [http://php.net/manual/en/function.str-replace.php صفحة الدالة str_replace في توثيق PHP الرسمي.]
 +
[[تصنيف:PHP]]
 +
[[تصنيف:PHP Function]]
 +
[[تصنيف:PHP String]]

المراجعة الحالية بتاريخ 12:50، 9 أبريل 2018

(PHP 4, PHP 5, PHP 7)

تبدِّل الدالة str_replace()‎ كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال.

الوصف

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

تعيد الدالة str_replace()‎ سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل search في المعامل subject إلى قيمة المعامل replace المعطاة.

إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة preg_replace()‎.

المعاملات

إذا كان المعامل search والمعامل replace مصفوفتين، فإن الدالة str_replace()‎ تأخذ قيمة من كل مصفوفة وتستخدمها للبحث والاستبدال في المعامل subject. إذا كان المعامل replace يحتوي على قيم أقل من المعامل search، فستستخدم سلسلة نصية فارغة لبقية قيم الاستبدال. إذا كان المعامل search مصفوفة والمعامل replace سلسلة نصية، فستستخدم سلسلة الاستبدال هذه لكل قيمة من قيم المعامل search. ومع ذلك، فإن العكس ليس له معنى.

إذا كان المعامل search أو المعامل replace مصفوفة، فستعالَج عناصرها من العنصر الأول إلى العنصر الأخير.

search

القيمة التي يُبْحَث عنها والمعروفة باسم الإبرة (needle). يمكن استخدام مصفوفة لتعيين قيم متعددة.

replace

قيمة الاستبدال التي تحل محل قيم المعامل search التي تم عُثِرَ عليها. يمكن استخدام مصفوفة لتعيين بدائل متعددة.

subject

السلسلة أو المصفوفة التي يُبْحَث عنها وتستبدل، والمعروفة باسم كومة القش (haystack).

إذا كان المعامل subject مصفوفةً، فستجرى عملية البحث والاستبدال مع كل مَدْخَل للمعامل subject، وتكون القيمة المعادة مصفوفة أيضًا.

count

إذا مُرِّرَ المعامل count، فستضبط قيمته إلى عدد عمليات الاستبدال التي نُفِّذَت.

القيم المعادة

تعيد الدالة str_replace()‎ سلسلة نصية أو مصفوفة بها القيم المستبدلة.

أمثلة

المثال 1: مثال بسيط على الدالة str_replace()‎

<?php
// <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
$newphrase = str_replace($healthy, $yummy, $phrase);
// 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>

المثال 2: مثال على أهمية ترتيب القيم في الدالة str_replace()‎ يحول المثال الأول السطر ‎\r\n أولاً حتى لا يحول مرتين. وسيعيد المثل الثاني الحرف F لأنه استبدل A بالحرف B ، ثم استبدل B بالحرف C ، وهكذا ... وأخيرا استبدل E بالحرف F ، بسبب أنَّ الاستبدالات تجرى من اليسار إلى اليمين.

<?php
// ترتيب الاستبدال
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// الناتج هو F
$newstr = str_replace($order, $replace, $str);
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// apearpearle pear
// لنفس السبب المذكور أعلاه.
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

ملاحظات

ملاحظة: هذه الدالة آمنة ثنائيًا (binary-safe).

تحذير: نظرًا لأنَّ الدالة str_replace()‎ تجري عملية الاستبدال من اليسار إلى اليمين، فقد تستبدل قيمةً أُدْخِلَتْ مسبقًا عند إجراء عمليات استبدال متعددة. راجع المثال 2 في هذه الصفحة لمزيدٍ من المعلومات.

ملاحظة: هذه الدالة حساسة لحالة الأحرف. استخدم الدالة str_ireplace()‎ لاستبدال غير حساس لحالة الأحرف.

انظر أيضًا

  • الدالة str_ireplace()‎: نسخة غير حساسة لحالة الأحرف من الدالة str_replace()‎.
  • الدالة substr_replace()‎: استبدال النص داخل جزء من سلسلة نصية.
  • الدالة preg_replace()‎: إجراء عملية بحث واستبدال باستعمال التعابير النمطية (regular expressions).
  • الدالة strtr()‎: تحويل الأحرف أو استبدال سلاسل نصية فرعية.

مصادر