آموزش کامل PHP – قسمت 27: توابع رشته ای

کار با رشته ها در php

تابع ()strpos

این تابع برای بدست آوردن جایگاه خاصی از یک رشته متنی به کار می رود. این تابع به عنوان ورودی یک رشته متنی را در آرگومان اول دریافت کرده و بخشی که قصد بیرون آوردن آن از رشته متنی داریم را در آرگومان دوم دریافت می کند. یعنی در واقع محل آرگومان دوم را در رشته متنی یا آرگومان ورودی اول جستجو می کند. خروجی تابع آدرس یا محل وقوع ورودی یا آرگومان دوم در رشته مورد نظر است. اگر موردی یافت نشود تابع مقدار false را بر می گرداند. مثال:

$numberedString = "123456789"; // 9 numbers from 1 to 9

$fivePos = strpos($numberedString, "5");
echo $fivePos;

خروجی مثال فوق عدد 4 است که در متغییر fivepos قرار می گیرد.

تابع ()str_replace

کارکرد این تابع مانند دستور replace در نرم افزار های واژه پرداز مانند ورد است. با استفاده از این تابع می توانیم مواردی را در رشته های متنی جایگذاری کنیم. پارامترهای ورودی این تابع 3 مورد هستند:

  1. Search: این ورودی همان چیزی است ک قصد دارید در رشته متنی به دنبال آن بگردید. این ورودی می‌تواند یک رشته‌متنی یا یک آرایه باشد.
  2. replace: تمام یافته‌های حاصل از جستجوی رشته‌های متنی با این ورودی جایگزین می‌شوند. این ورودی در واقع مقدار جدیدی است که قصد دارید آن را با مقادیر قدیمی مورد نظر جایگزین کنید.
  3. orginalString: رشته متنی اولیه که قصد دارید در آن به جستجو و جایگزین کردن رشته‌های جدید بپردازید.

برای درک بهتر این تابع به مثال زیر توجه کنید:

<?php
//string that needs to be customized
$first= "Welcome to pardiswp";

$sec= str_replace("pardiswp", "@mxsafari", $first);

echo $sec;
?>

در خروجی کد فوق کلمه pardiswp با mxsafari@ در رشته ورودی جاگزین می شود.

تابع ()trim

گاهی ورودی‌هایی که کاربر وارد می‌کند را باید فیلتر کنیم که در جلسه قبل با توابع مرتبط با آن آشنا شدیم. اما با استفاده از تابع trim می‌توانید ابتدا کاراکترهای خالی (فاصله) سمت چپ و سمت راست رشته متنی را حذف کرده و سپس مقدار نهایی را در خروجی قرار دهید. این تابع یک ورودی دارد که آن رشته‌ی متنی مورد نظر است که قصد حذف کاراکترهای خالی سمت چپ و راست آن را داریم. مثال:

<?php
//string that needs to be trimmed
$stringTest = "  test trim func   ";
$finalString = trim($stringTest);
echo $finalString;
?>

نتیجه رشته‌ متنی بدون فاصله‌های اضافه اول و آخر آن خواهد بود.

از تابع ()ltrim و ()rtrim هم می‌توانید به صورت مشابه و به ترتیب برای حذف کاراکترهای خالی سمت چپ و حذف کاراکترهای سمت راست بهره ببرید.

تابع ()md5

با استفاده از این تابع می‌توانید یک رشته متنی را بدون بازگشت به صورت کدشده در بیاورید. از این تابع در پی‌اچ‌پی استفاده های فراوانی می‌شود. به عنوان مثال پیش از ذخیره رمزهای عبور یا اطلاعات مهم دیگر بسیاری از برنامه‌نویسان آن‌ها را با تابع md5 به صورت رمزنگاری شده در می‌آورند و سپس آن را در بانک‌های اطلاعاتی ذخیره می‌کنند. بدین ترتیب امنیت بیشتری در پروژه نوشته شده با PHP به وجود می آید. مثال:

<?php
//string that needs to encrypted
$str = "pardiswp";
$finalStr = md5($str);
echo $finalStr;
?>

همانطور که می‌بینید این تابع فقط یک ورودی دارد و آن هم رشته متنی‌ است که قصد دارید آن را رمزنگاری کنید. خروجی کد فوق رشته متنی رمز شده در مرورگر کاربر خواهد بود.

تابع ()str_word_count

از این تابع به منظور شمارش تعداد کلمات موجود در یک رشته متنی استفاده می‌شود. این تابع سه ورودی دارد که ورودی اول ضروری و ورودی دوم و سوم اختیاری هستند و می‌توان آن‌ها را در تابع وارد نکرد.

  1. string: رشته متنی‌ که قصد دارید تعداد کلمات آن را شمارش کنید.
  2. return: این ورودی اختیاری است. می‌توان سه مقدار برای آن تعیین کرد. اگر این ورودی ۰ باشد، خروجی تابع همان تعداد کلمات رشته متنی است که به صورت پیش فرض اگر وارد نشود هم همان صفر در نظر گرفته می‌شود. اگر این آرگومان ۱ باشد، خروجی تابع یک آرایه از تمام کلمات رشته متنی مورد نظر خواهد بود. اگر این آرگومان ۲ باشد خروجی تابع آرایه‌ای از کلمات خواهد بود با این تفاوت که این بار کلید هر عضو از آرایه در واقع جایگاه آن در رشته متنی خواهد بود.
  3. char: این آرگومان نیز اختیاری است. می‌توان با این ورودی برخی کاراکترهای خاص را به عنوان کلمه در نظر گرفت.

برای آشنایی بیشتر با این تابع به مثال زیر دقت کنید:

<?php
$str = "pardiswp website";
$finalStr = str_word_count($str);
echo $finalStr;
?>

نتیجه اجرای کد فوق عدد ۲ خواهد بود.

تابع ()strlen

با استفاده از این تابع می‌توانید تعداد کاراکترهای یک رشته متنی را شمارش کنید. این تابع فقط یک ورودی دارد و آن هم رشته متنی مورد نظری است که قصد دارید طول آن را بدست آورید. مثال:

<?php
$str = "pardiswp website";
$finalStr = strlen($str);
echo $finalStr;
?>

نتیجه اجرای کد فوق عدد ۱۴ خواهد بود. چراکه رشته متنی ذخیره شده در متغیر str در کد بالا، شامل ۱۴ کاراکتر است. دقت کنید که فاصله هم به عنوان یک کاراکتر شناخته می‌شود.

تابع ()substr

از این تابع به منظور برش دادن بخش خاصی از یک رشته متنی می‌توان استفاده کرد. خروجی این تابع بخش مورد نظر شما خواهد بود. این تابع سه ورودی دارد.

  1. string: رشته متنی‌ که قصد دارید بخشی از آن را برش دهید.
  2. start: جایگاهی که قصد دارید از آنجا عمل برش رشته متنی انجام شود. این عدد در واقع شماره جایگاه کاراکتر اولیه‌ای است که قصد دارید برش را از آنجا آغاز کنید. اگر این مقدار ۰ باشد، عملیات برش از اولین کاراکتر شروع می‌شود.
  3. length: این ورودی در واقع اختیاری بوده و می‌توانید آن را وارد نکنید. این ورودی طول رشته متنی برش خورده نهایی را بر حسب کاراکتر نشان می‌دهد. به صورت پیش فرض اگر این آرگومان را وارد نکنید رشته متنی تا آخرین کاراکتر برش خواهد خورد.

برای درک بهتر این تابع توجه شما را به مثال زیر جلب می‌کنیم:

<!DOCTYPE html>

<html>

<body>

<?php

// Positive numbers:

echo substr("Hello world",10)."<br>";

echo substr("Hello world",1)."<br>";

echo substr("Hello world",3)."<br>";

echo substr("Hello world",7)."<br>";

echo "<br>";

// Negative numbers:

echo substr("Hello world",-1)."<br>";

echo substr("Hello world",-10)."<br>";

echo substr("Hello world",-8)."<br>";

echo substr("Hello world",-4)."<br>";

?>

</body>

</html>

خروجی کد بالا به صورت زیر خواهد بود:

d

ello world

lo world

orld

d

ello world

lo world

orld

بدین صورت با این تابع می‌‌توانید بخش مورد نظر خود را از هر رشته‌ متنی برش دهید.