PHP Professional এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

PHP String Manipulation পর্ব-৩

PHP String

PHP String

PHP String Manipulation তৃতীয় পর্বে আপনাকে স্বাগতম। এই পর্বে আমরা String এর মধ্যে Finding, Replacing, Reversing, Converting, Repeating, Comparing, একটি নির্দিষ্ট অংশ Display এবং String এর White spaces Remove এর মতো কাজ গুলো কিভাবে করা যায় তার বিস্তারিত জানব। চলুন শুরু করা যাক :

একটি String এর মধ্য থেকে কিভাবে একটা নির্দিষ্ট Text কে খুঁজে বের করবেন?

একটি String এর মধ্য থেকে একটা নির্দিষ্ট Text এর position কে খুঁজে বের করতে হলে আপনাকে strpos() function টি ব্যবহার করতে হবে। চলুন উদাহরণে দেখা যাক :

<?php
$mainString="Welcome to W3programmers";
$searchString="W3programmers";
echo "Get Search String Position: ";
echo strpos($mainString,$searchString);

Output

Get Search String Position: 11

আপনি চাইলে কোনো word অথবা sub string আছে কিনা তা strpos() function ব্যবহার করে চেক করতে পারেন। নিচের উদাহরণে দেখুন :

<?php
$mainString="Welcome to W3programmers";
$searchString="W3programmers";
if (strpos($mainString, 'W3programmers') !== false) {
    echo 'true';
}

Output

true

একটি String এর মধ্য থেকে কিভাবে একটা নির্দিষ্ট word বা sub string কে খুঁজে বের করে নতুন কিছু দিয়ে replace করবেন?

একটি String এর মধ্য থেকে একটা নির্দিষ্ট word বা sub string কে খুঁজে বের করে নতুন কিছু দিয়ে replace করতে হলে আপনাকে str_replace() function টি ব্যবহার করতে হবে। নিচের উদাহরনে দেখুন :

<?php
$mainString="Welcome to W3programmers";
$searchString="W3programmers";
$stringToReplace="the programming world";
echo str_replace($searchString,$stringToReplace,$mainString);

Output

Welcome to the programming world

কিভাবে একটা string কে uppercase থেকে lowercase এবং lowercase থেকে uppercase এ পরিবর্তন করবেন ?

একটা string কে uppercase থেকে lowercase পরিবর্তন করতে হলে আপনাকে strtolower এবং lowercase থেকে uppercase এ পরিবর্তন করতে হলে strtoupper ফাঙ্কশন টি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

<?php
$mainString="Welcome to W3programmers";
echo strtolower($mainString);
echo "\n";
echo strtoupper($mainString);

Output

welcome to w3programmers
WELCOME TO W3PROGRAMMERS

কিভাবে একটা string এর প্রথম লেটার টি uppercase এবং lowercase এ পরিবর্তন করবেন ?

একটা string এর প্রথম লেটার টি uppercase এ পরিবর্তন করতে হলে আপনাকে ucfirst() এবং lowercase এ পরিবর্তন করতে হলে আপনাকে lcfirst() এই দুটি ফাঙ্কশন ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

<?php
$mainString="welcome to w3programmers";
echo ucfirst($mainString);
echo "\n";
echo lcfirst($mainString);

Output

Welcome to w3programmers
welcome to w3programmers

কিভাবে একটা string এর মধ্যে প্রত্যেকটি ওয়ার্ড এর প্রথম লেটার টি uppercase এ পরিবর্তন করবেন?

একটা string এর মধ্যে প্রত্যেকটি ওয়ার্ড এর প্রথম লেটার টি uppercase এ পরিবর্তন করতে হলে আপনাকে ucwords() ফাঙ্কশনটি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

<?php
$mainString="welcome to w3programmers";
echo ucwords($mainString);

Output

Welcome To W3programmers

কিভাবে একটা string কে নির্দিষ্ট সংখ্যক বার repeat করা যাবে?

একটা string কে নির্দিষ্ট সংখ্যক বার repeat করতে হলে আপনাকে str_repeat() function ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন:

<?php
echo str_repeat("=",10);

Output

==========

কিভাবে দুটি string এর মধ্যে compare করবেন?

দুটি string এর মধ্যে একটির সাথে আরেকটিকে compare করতে হলে আপনাকে strcmp() function টি ব্যবহার করতে হবে। এক্ষেত্রে ফলাফল যদি <0 হয়, তাহলে বুজতে হবে str1 স্ট্রিং str2 এর থেকে ছোট, আর >0 হয়, তাহলে বুজতে হবে str1 স্ট্রিং str2 এর থেকে বড়। আর ফলাফল 0 হয়, তাহলে বুজতে হবে str1 স্ট্রিং এবং str2 স্ট্রিং দুটি সমান। নিচের উদাহরণে দেখুন:

<?php
$str1="w3programmer";
$str2="w3programmer";

switch(strcmp($str1,$str2)){
    case 0:
        echo "Both String are equal";
        break;
    case 1:
        echo "'$str1' is greater then '$str2'";
        break;
    default:
        echo "'$str1' is smaller then '$str2'";
        break;
}

Output

Both String are equal

কিভাবে একটা String এর নির্দিষ্ট অংশ প্রদর্শন করবেন বা কেটে নিবেন ?

কিভাবে একটা String এর নির্দিষ্ট অংশ প্রদর্শন করতে চাইলে আপনাকে substr() ফাঙ্কশনটি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

কিভাবে দুটি string এর মধ্যে similarity check করবেন?

দুটি string এর মধ্যে similarity check করতে হলে আপনাকে levenshtein() function টি ব্যবহার করতে হবে।

<?php
// input misspelled word
$input = 'carrrot';

// array of words to check against
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// no shortest distance found, yet
$shortest = -1;

// loop through words to find the closest
foreach ($words as $word) {

    // calculate the distance between the input word,
    // and the current word
    $lev = levenshtein($input, $word);

    // check for an exact match
    if ($lev == 0) {

        // closest word is this one (exact match)
        $closest = $word;
        $shortest = 0;

        // break out of the loop; we've found an exact match
        break;
    }

    // if this distance is less than the next found shortest
    // distance, OR if a next shortest word has not yet been found
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Input word: $input\n";
if ($shortest == 0) {
    echo "Exact match found: $closest\n";
} else {
    echo "Did you mean: $closest?\n";
}

?>

Output

Input word: carrrot
Did you mean: carrot?

দুটি string এর মধ্যে কত ভাগ (%) similarity আছে তা কিভাবে check করবেন।

দুটি string এর মধ্যে কত ভাগ (%) similarity আছে তা check করতে হলে আপনাকে similar_text() function টি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন:

<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";

Output

similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)

একটা String কে কিভাবে Translation করবেন?

একটা String কে Translation করার জন্য আপনি strtr() function এর সাহায্য নিতে পারেন। নিচের উদাহরণ দেখুন:

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Output

Hello all, I said hi

আরো একটা উদাহরণ দেখুন :

<?php
echo strtr("baab", "ab", "01"),"\n";
?>

Output

1001

তবে আপনি চাইলে array দিয়ে আরো effective way তে কাজটি করতে পারেন। নিচের উদাহরণে দেখুন :

<?php

$strTemplate = "My name is :name, not :name2.";
$strParams = [
  ':name' => 'Dave',
  ':name2' => 'Steve',
];

echo strtr($strTemplate, $strParams);

My name is Dave, not Steve.

String এর শুরু এবং শেষ থেকে কিভাবে whitespace বা অন্যান্য special character গুলো remove করবেন?

String এর শুরু এবং শেষ থেকে whitespace বা অন্যান্য special character গুলো remove করতে হলে আপনাকে trim() function টি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

<?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);

// trim the ASCII control characters at the beginning and end of $binary
// (from 0 to 31 inclusive)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

Output

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"

তবে String এর left থেকে whitespace বা অন্যান্য special character গুলো remove করতে হলে আপনাকে ltrim() function এবং right থেকে whitespace বা অন্যান্য special character গুলো remove করতে হলে আপনাকে rtrim() functionটি ব্যবহার করতে হবে। নিচের উদাহরণে দেখুন :

ltrim() দিয়ে উদাহরণ :

<?php

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

print "\n";


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

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

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

// trim the ASCII control characters at the beginning of $binary
// (from 0 to 31 inclusive)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Output

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

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

rtrim() দিয়ে উদাহরণ :


<?php

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

print "\n";

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

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

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

// trim the ASCII control characters at the end of $binary
// (from 0 to 31 inclusive)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Output

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

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

String থেকে কিভাবে html tag গুলো remove করবেন?

string থেকে html tag গুলো remove করতে হলে আপনাকে strip_tags() function টি ব্যবহার করতে হবে। নিচের উদাহরণটি দেখুন :

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>

Output

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

কিভাবে special character গুলোকে html entity তে রূপান্তর করবেন?

special character গুলোকে html entity তে রূপান্তর করার জন্য আপনাকে htmlspecialchars() function টি ব্যবহার করতে হবে। নিচের উদাহরণটি দেখুন :

<?php
$new = htmlspecialchars("<a href='test'>Test</a>");
echo $new; 
?>

Output

&lt;a href='test'&gt;Test&lt;/a&gt;

তবে আপনি চাইলে single quote এবং double quote কেও html entity তে convert করে নিতে পারেন। নিচের উদাহরণটি দেখুন :

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

এ ছাড়াও htmlentities function দিয়েও এই কাজটি করতে পারেন। নিচের উদাহরণে দেখুন :

<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।

Leave a Reply

Your email address will not be published. Required fields are marked *