الدالة trim()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 08:59، 8 أبريل 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

(PHP 4, PHP 5, PHP 7)

تزيل الدالة trim()‎ المسافات البيضاء (whitespace) (أي جميع محارف الفراغات) أو أي محرف آخر من بداية السلسلة النصيَّة المررَّة إليها ونهايتها.

الوصف

string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B"] )

تعيد هذه الدالة السلسلة النصيَّة str بعد أن تزيل جميع المسافات البيضاء أو المحارف المحدَّدة ضمن المعامل الاختياري character_mask. إن لم يُمرَّر المعامل السابق، فستزيل الدالة المحارف التالية:

  • " ": محرف الفراغ وهو المحرف 32 (0x20) في الجدول ASCII.
  • "‎\t": محرف مسافة الجدولة (tab) وهو المحرف 9 (0x09) في جدول ASCII.
  • "‎\n": محرف سطر جديد وهو المحرف 10 (0x0A) في جدول ASCII.
  • "‎\r": محرف العودة إلى بداية السطر (carriage return) وهو المحرف 13 (0x0D) في جدول ASCII.
  • "‎\0": المحرف NUL وهو المحرف 0 (0x00) في الجدول ASCII.
  • "‎\x0B": محرف مسافة الجدولة العموديَّة (vertical tab) وهو المحرف 11 (0x0B) في جدول ASCII.

المعاملات

str

السلسلة النصيَّة التي ستجرى عليها العمليَّة.

character_mask

معامل اختياري، وهو يمثِّل جميع المحارف المراد إزالتها. يمكن استعمال النقطتين ".." لتحديد مجال من الأحرف.

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

تُعاد السلسلة النصيَّة str بعد إزالة المحارف البيضاء أو المحارف التي يحدِّدها المعامل character_mask من بدايتها ونهايتها.

أمثلة

المثال 1: استعمال الدالة trim()‎

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

//ونهايته $binary من بداية قيمة المتغير ASCII إزالة محارف التحكم الموجودة في جدول
// أي من المحرف 0 وحتى المحرف 31
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

سيُظهر المثال السابق النتيجة التالية:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

المثال 2: تطبيق الدالة trim()‎ على قيم مصفوفة

<?php
function trim_value(&$value) 
{ 
    $value = trim($value); 
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

سيُظهر المثال السابق النتيجة التالية:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

ملاحظات

ملاحظة بخصوص إزالة المحارف المتوسِّطة: لابد أنَّك قد لاحظت أنَّ الدالة trim()‎ تزيل أحيانًَا المحارف التي تقع في وسط السلسلة النصيَّة ولا تزيلها أحيانًا أخرى بالرغم أنَّ وظيفتها هي إزالة المحارف من بداية السلسلة ونهايتها فقط. يعود سبب ذلك إلى أنَّه عندما تزيل الدالة المحرف المحدَّد من بداية السلسلة ونهايتها، تعود وتتأكد إن كان المحرف الذي أصبح في بداية السلسلة أو نهايتها من ضمن المحارف التي يجب إزالتها أو لا. إن أردنا مثلًا إزالة المحارف 'bad' من بداية السلسلة 'abc' ونهايتها، نجد أنَّ الدالة trim('abc', 'bad')‎ تزيل الحرف 'a' ثمَّ تزيل الحرف المتوسط 'b' الذي أصبح في بداية السلسلة. لاحظ أنَّ الدالة بالشكل trim('abc', 'b')‎ لا تعمل مثل الحالة السابقة أي لا تزيل الحرف المتوسط 'b'.

انظر أيضًا

  • الدالة ltrim()‎: تزيل المسافات البيضاء (whitespace) (أي جميع محارف الفراغات) أو أي محرف آخر من بداية السلسلة النصيَّة المررَّة إليها.
  • الدالة rtrim()‎: تزيل المسافات البيضاء (whitespace) (أي جميع محارف الفراغات) أو أي محرف آخر من نهاية السلسلة النصيَّة المررَّة إليها.
  • الدالة str_replace()‎: تبدِّل سلسلة نصيَّة معيَّنة مكان سلسلة نصيَّة أخرى أينما عَثرت عليها.

مصادر