0

بررسی توابع PHP

 
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

بررسی توابع PHP

 

در این تایپیک توابع مهم php مورد بررسی قرار می گیرد.

 

و سعی می کنم کوتاه باشه منبع اصلی مثالها مورد استفاده سایت php.net و w3schools.com و ...  است.

چهارشنبه 14 تیر 1391  6:22 PM
تشکرات از این پست
architect0811 asghar604 sina_1
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع substr ، تابع کوتاه کننده رشته

تابع substr : این تابع برای کوتاه کردن و برداشتن کلمات یا خطوط یک متن استفاده می شود. کاربرد عمده این تابع در خلاصه مطلب برداشتن و ادامه مطلب دادن به یک پست است.


مثال :

<?php


// تعريف رشته
$str = "Mohamad reza";

// از کارکتر 7 به بعد را نگه می دارد
// result: "reza"
$r = substr($str, 7);
echo "$r<br>";

// هفت کارکتر اول را بر می دارد
// result: "Mohamad"
$r = substr($str, 0, 7);
echo $r;


?>

خرو جی :

reza
Mohamad

 

حالت کلی : در حالت کلی این تابع سه پارامتر دارد که پارامتر اول، متغیر یا رشته است و پارامتر دوم، کاراکتر شروع را مشخص می کند یعنی مثلا اگر 1 باشد از کارکتر دوم شروع میکند و کارکتر اول را نادیده می گیرد. پارامتر سوم ، طول کارکتر را مشخص می کند و اگر این مقدار منفی باشد از انتهای رشته به صورت برعکس بر می گردد مثلا اگر مقدارش 1 باشد آخرین کاراکتر رشته را حذف می کند .


مثال :

 

<?php

echo substr('abcdef', 0, 4); // abcd

echo "<br>";
echo substr("abcdef", 0, -1); // returns "abcde"

?>


خروجی :

abcd

abcde

 خط اول : از کارکتر اول شروع و 4 کاراکتر ار انتخاب می کند.

 خط دوم : با چاپ br ، یک خط به پایین رفته و دستور بعدی سپس چاپ می شود برای اینکه دو خروجی به هم نچسبند.

خط سوم: از کاراکتر اول شروع و مقدار بعدی چون منفی یک است از انتهای رشته شروع و کاراکتر آخر را در نظر نگرفته و حذف می کند.


چهارشنبه 14 تیر 1391  6:48 PM
تشکرات از این پست
architect0811 asghar604 zeinab_p
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع strrev ، تابع برعکس کننده متن

تابع strrev : این تابع رشته و متن دریافتی را برعکس می کند.

 

مثال :

 

<?php


// تعريف رشته
$str = "http://rasekhoon.net";

// معکوس کردن متن
// result: "ten.noohkesar//:ptth"
$res = strrev($str);
echo $res;


?>

خروجی : ten.noohkesar//:ptth

 

این تابع رشته بالا را به صورت معکوس تبدیل می کند ولی این تابع با فارسی مشکل دارد برای معکوس کردن متن فارسی از یک تابع دیگر استفاده می شود.

 

حل مشکل برعکس کردن متن فارسی : برای این کار نمی توانید از تابع strrev استفاده کنید و از تابع زیر استفاده می شود.

 

 

<?php

function strrev_utf8($str) {
return join("", array_reverse(
preg_split("//u", $str)
));
}

$str = "سایت راسخون";

echo strrev_utf8($str); // نوخسار تیاس

?>

خروجی : نوخسار تیاس

 

چهارشنبه 14 تیر 1391  8:24 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع str_repeat ، تابع تکرار کننده یک حرف یا رشته

تابع str_repeat : این تابع رشته ای که می گیرد را تکرار می کند.

 

مثال :

 

<?php

// تعريف رشته
$laugh = "°~ ";

// تکرار رشته
// result: "°~ °~ °~ °~ °~ °~ °~ °~ °~ °~ "
$rlaugh = str_repeat($laugh, 10);
echo $rlaugh;

?>


خروجی : °~ °~ °~ °~ °~ °~ °~ °~ °~ °~


این تابع دو پارامتر دارد: 1- پارامتر اول، رشته ورودی را می گیرد. 2- پارامتر دوم، تعداد تکرار رشته را مشخص می کند.

 

چهارشنبه 14 تیر 1391  8:49 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

توابع ord,chr ، توابع تبدیل کارکتر به کد اسکی و برعکس

 

تابع ord : این تابع عدد را گرفته و کد اسکی معادل آن را برمی گرداند.

تابع chr : برعکس تابع بالا کد اسکی را گرفته و کاراکتر معادل آن را برمی گرداند.

 

مثال 1 :

<?php

// تعريف رشته
$char = "a";

// کد اسکي کاراکتر را بر مي گرداند
// result: 97
$asc = ord($char);
echo $asc;

?>

 

خروجی : 97

 

مثال 2 :

 

<?php

// تعريف کد اسکي
$asc = 65;

// کارکتر معادل عدد اسکي را مي دهد
// result: "A"
$char = chr($asc);
echo $char;

?>

 

خروجی : A

 

 مثال 3 : معادل کاراکتری عدد اسکی بین 97 تا 123 را چاپ کنید.

 

<?php


// result: "abcd...xyz"
for ($a=97; $a<(97+26); $a++) {
echo chr($a); echo "&nbsp;";
}


?>

 

خروجی : a b c d e f g h i j k l m n o p q r s t u v w x y z

 

همین طور که می دانید معادل کاراکتری عدد اسکی 97 تا 123 حروف الفبای کوچک انگلیسی است که در یک حلقه با تابع chr چاپ شده سپس یک فاصله بین حروف چاپ می شود.    

 

چهارشنبه 14 تیر 1391  11:50 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع str_split ، تابع تقسيم طول يك رشته

تابع str_split : این تابع یک رشته را گرفته و برا اساس طولی که می گیره رشته رو تقسیم کرده و خروجی رو در یک آرایه می ریزه که با یک حلقه می توانید آن را چاپ کنید.

 

مثال : یک رشته را گرفته و آن را به قسمتهای 3 کاراکتری تقسیم کرده و چاپ کند.

 

<?php


// define string
$str = "In the name of god";

// define chunk size
$chunkSize = 3;

// تقيسم رشته به طول مشخص شده
// result:
[0] => In [1] => the [2] => na [3] => me [4] => of [5] => god //
$chunkedArr = str_split($str, $chunkSize);
print_r($chunkedArr);

echo "<br>";
for ($i=0; $i<count($chunkedArr); $i++){
  echo "$chunkedArr[$i]<=[$i]"; echo "<br>";
}


?>

 

خروجی : Array ( [0] => In [1] => the [2] => na [3] => me [4] => of [5] => god )
In <=[0]
the<=[1]
na<=[2]
me <=[3]
of <=[4]
god<=[5]

 

همین طور که قبلا اشاره شد خروجی این تابع به صورت آرایه است. و در خروجی اول با دستور print_r مشاهده می کنید ولی در حلقه for چون اندیس آرایه مشخص است اندیس آرایه به همراه مقدار آرایه چاپ شده است لازم به این نکته اشاره کنم که فاصله هم یک کاراکتر است و بعضی که دو حرفی است حرف سوم اسپیس است.

در حلقه for مقدار count طول آرایه را بر می گرداند. بقیه هم مشخص است.

 

پنج شنبه 15 تیر 1391  12:55 AM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع explode ، تابع جدا کننده و تقسیم رشته

تابع explode : این تابع بر اساس جدا کننده مشخص شده یک رشته را به چندین قسمت جدا کرده و خروجی را درون یک آرایه برمی گرداند.

که ورودی اول تابع نوع جداکننده و مقدار دوم رشته است. این تابع یکی از توابع مهم کار با رشته ها است.

 

مثال :

 

<?php

// تعريف رشته
$ingredientsStr = "butter , milk, sugar, salt";
// رشته را براساس جداکننده ، جدا مي کند
$ingredientsArr = explode(", ", $ingredientsStr);

// رشته جدا شده که درون آرايه است چاپ ميشود
foreach ($ingredientsArr as $i) {
print $i . "<br>";
}

?>

خروجی :

butter
milk
sugar
salt

 

در تابع explode ، بر اساس جدا کننده "," رشته بالا به چهار رشته جداگانه تقسیم شده و داخل یک آرایه ذخیره می شود سپس در حلقه foreach مقادیر ذخیره شده چاپ می شود .

 

پنج شنبه 15 تیر 1391  1:41 AM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع parse_url ، تابع پردازش url

تابع parse_url :  يک URL دریافت کرده و آرايه اي حاوي اجزاي آدرس خروجی اش است اجزا ""آدرس شامل قسمتهای زیر:

  • scheme: همون http يا https يا ftp و غيره
  • host: دامنه اصلي مثل rasekhoon.net
  • port: پورت که
  • user: نام کاربری username
  • pass: رمز يا password
  • path: مسير آدرس بعد از دامين
  • query: کوئري يعني کاراکترهاي بعد از علامت "?"
  • fragment: يا hash يا کاراکترهايي که بعد از علامت "#" هستند

 

مثال :

 

<?php


// تعريف URL
$url = "http://www.melonfire.com:80/community/columns/trog/article.php?id=79&page=2";

// خروجي اين تابع يک آرايه است
$data = parse_url($url);

// چاپ اجرا آرايه با انديس
foreach ($data as $k=>$v) {
  echo "$k: $v <br>";
}


?>

 

خروجی :

scheme: http
host: www.melonfire.com
port: 80
path: /community/columns/trog/article.php
query: id=79&page=2

 

تابع parse_url، آدرس را گرفته و اجزاء آن را در آرایه ای قرار می دهد سپس در حلقه foreach اندیس آرایه و مقدار آن را چاپ می کند. وقتی که بخواهیم به یک جزء آن دسترسی داشته باشیم مثلا port می توانیم نام آرایه با اندیس آن که port است استفاده کنیم.

مانند:

echo $data['port'];

که فقط پورت آدرس چاپ می شود.

 

پنج شنبه 15 تیر 1391  2:20 AM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع str_replace ، تابع جایگزین کننده کاراکترهای یک رشته

 

تابع str_replace : این تابع دارای سه آرگومان، اولی، کاراکتری که باید پیدا کند و دومی، کاراکتری که جایگزین می شود و پارامتر آخر رشته مورد استفاده در تابع است. یعنی این تابع یک کاراکتر یا رشته رو توی یک کاراکتر یا رشته دیگه پیدا کرده و جایگزین می کند.

 

مثال : در رشته زیر علی را یافته و به جای آن احمد را جایگزین کند.

 

<?php

// تعريف رشته
$str = "Ali says hello to reza";

// مقدار پارامتر اول را يافته و با پارامتر دوم در رشته جايگزين مي کند
// result: "Ahmad says hello to reza"
$newStr = str_replace("Ali", "Ahmad", $str);
echo $newStr;

?>

خروجی : Ahmad says hello to reza

 

مثال 2 : در این مثال چندین حرف از رشته حذف می شود.

 

<?php

// Provides: Hll Wrld f PHP
$vowels = array("a""e""i""o""u""A""E""I""O""U");
$onlyconsonants str_replace($vowels"""Hello World of PHP");

echo $onlyconsonants ;

?>

خروجی : Hll Wrld f PHP

در اینجا به جای یک کاراکتر یا کلمه از چندین کاراکتر در آرایه برای جایگزین شدن در رشته در نظر گرفته شده است و خروجی این تابع در یک متغیر ذخیره شده سپس چاپ می شود.

 

مثال 3 :

 

<?php

// result: You should eat pizza, beer, and ice cream every day
$phrase  "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits""vegetables""fiber");
$yummy   = array("pizza""beer""ice cream");
$newphrase str_replace($healthy$yummy$phrase);

?>

خروجی : You should eat pizza, beer, and ice cream every day

در رشته phrase  مقادیر آرایه healthy یافت شده و با مقادیر آرایه yummy جایگزین می شود.

البته مثالهای زیادی تو سایت php.net است که می توانید مطالعه کنید.

 

جمعه 16 تیر 1391  3:53 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع preg_replace ، تابع جایگزین کننده کاراکتر یا حرف در یک رشته

 

تابع preg_replace : این تابع مانند تابع str_replace ، یک یا چند کاراکتر یا حرف را در رشته ورودی یافته و با مقادیر مورد نظر جایگزین می کند تفاوت این تابع با str_replace ، قدرت و انعطاف بیشتر و جایگزینی همزمان چندین کاراکتر با استفاده از علائم منظم است.

 

مثال1 :

 

<?php
//تعریف رشته
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

 

 

خروجی : The bear black slow jumped over the lazy dog

ابتدا یک رشته تعریف شده سپس آرایه patterns تعریف شده است، آرایه مقداردهی شده و آرایه replacements هم همین طور تعریف و مقداردهی شده است سپس در تابع preg_replace در آرگومان اول مقادیر آرایه patterns را در رشته string یافته سپس با مقادیر آرایه replacements جایگزین می کند.

در آرایه ها جایگزینی به ترتیب مقدار دهی آرایه است و با اندیس آرایه کاری ندارد.

 

 

دوشنبه 19 تیر 1391  11:59 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع sizeof ، تابع شمارش طول آرایه

تابع sizeof : این تابع شمارش طول آرایه (تعداد خانه های آرایه) را انجام می دهد. وقتی که طول آرایه را نداریم و می خواهیم از حلقه for استفاده کنیم این تابع استفاده می شود.

 

مثال :

 

<?php

$people = array("Ali", "Ahmad", "Reza", "Mohamad");
$result = sizeof($people);

echo  " Size Of Array Is : ".$result;

?>

خروجی :

Size of array is : 4

 

ابتدا آرایه را که شامل چهار نام است تعریف شده و سپس با استفاده از تابع اندازه طول آرایه که 4 است در متغیری قرار گرفته سپس چاپ می شود.

 

سه شنبه 20 تیر 1391  1:42 PM
تشکرات از این پست
architect0811
architect0811
architect0811
کاربر طلایی1
تاریخ عضویت : خرداد 1391 
تعداد پست ها : 6050
محل سکونت : همدان

پاسخ به:بررسی توابع PHP

سلام خدمت دوست عزیز

واقعا مطالب کاربردی هستش

ممنون

 

 

 

 

سه شنبه 20 تیر 1391  1:51 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع implode ، تابع پیوند دهنده عناصر آرایه

تابع implode : این تابع یکی از توابع مهم پی اچ پی است و برعکس تابع explode که یک رشته را گرفته و بر اساس جداکننده ، کار جداسازی را انجام داده و خروجی یک  آرایه است  تابع implode یک آرایه را گرفته و خروجی آن یک رشته است.

 

 

implode(آرایه , جدا کننده ); 
خروجی تابع : رشته 

مثال 1 : آرایه ای را گرفته و به یک رشته تبدیل کند.

 

<?php
         $arr = array('Hello','World!','Beautiful','Day!');
         echo implode(" ",$arr);
?>

خروجی :

 

Hello World! Beautiful Day!

 

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

 

مثال 2 : آرایه را گرفته سپس بر اساس جدا کننده در خروجی یک رشته چاپ می کند.

 

<?php
//تعریف آرایه
$array 
= array('lastname''email''phone');
// براساس جدا کننده که ویرگول است آرایه را گرفته سپس تبدیل به رشته می کند
$comma_separated implode(" ~~> "$array);
//result: zero ~~> one ~~> two
echo $comma_separated;

?>

خروجی :

 

zero ~~> one ~~> two

 

سه شنبه 20 تیر 1391  2:55 PM
تشکرات از این پست
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع array_slice ، تابع برش قسمتی از یک آرایه

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

ورودی تابع آرایه ~~> خروجی تابع آرایه

چهار مشخصه و آرگومان دارد، عبارتند از :

  • مشخصه اول : نام آرایه ورودی

 

  • مشخصه دوم : نقطه شروع برش، اگر مثبت باشد از اول شروع مي شود و اگر منفي باشد از آخر آرایه.

 

  • مشخصه سوم : تعداد خانه های از آرایه که باید جدا شود.

 

  • مشخصه چهارم : و بالاخره مهمترین مشخصه،  دو حالت true , false دارد که پیش فرض false است و اگر true باشد مقدار اندیسی که در آرایه ورودی دارد را برای آرایه خروجی در نظر می گیرد. مثلا اگر اندیس یک خانه آرایه 5 باشد در آرایه جدید هم همین اندیس را خواهد داشت ولی در غیر این صورت اندیس های آرایه خروجی از صفر شروع می شود.


ساختار تابع :

 

array_slice(array,start,length,preserve)
array_slice(وضعیت ذخیره اندیس,طول جدا کردن,اندیس شروع آرایه,نام آرایه)

 

مثال : آرایه ای را تعریف و قسمتی از آن را چاپ کند.

 

<?php
    // تعریف آرایه
    $a=array(0=>"Ali",1=>"Reza",2=>"Hasam",3=>"Amin",4=>"Mohamad");
    //  چاپ آرایه با توجه به اندیس شروع و طول پیمایش آرایه
    print_r(array_slice($a,2,3));
    echo "<br>";
    print_r(array_slice($a,2,3,true));
    echo "<br>";
    print_r((array_slice($a,-2,2));
?>

خروجی

 

Array ( [0] => Hasam [1] => Amin [2] => Mohamad )
Array ( [2] => Hasam [3] => Amin [4] => Mohamad )
Array ( [0] => Amin [1] => Mohamad )

ابتدا آرایه تعریف شده و در اولین تابع مشخصه اول، نام تابع و مشخصه دوم، اندیس شروع که 2 است و مشخصه سوم، طول پیمایش آرایه که 3 است. تابع از اندیس دوم که حسن است شروع و سه خانه آرایه را پیمایش و در آرایه خروجی با اندیس 0 تا 2 ذخیره می کند. سپس یک br چاپ می شود تا یک خط به پایین برود.

تابع دوم هم مانند خط قبل است با این تفاوت که وضعیت ذخیره اندیس true است که باعث می شود اندیس آرایه ورودی در آرایه خروجی حفظ شود.

تابع سوم مانند تابع اول است با این تفاوت که مشخصه شروع منفی است و از سمت چپ آرایه شروع کرده و 2 خانه آخر آرایه را جدا می کند.

 

پنج شنبه 22 تیر 1391  6:07 PM
تشکرات از این پست
architect0811
architect0811
کاربر طلایی1
تاریخ عضویت : خرداد 1391 
تعداد پست ها : 6050
محل سکونت : همدان

پاسخ به:بررسی توابع PHP

 

نقل قول sahel_007
 
 

سلام خدمت دوست گرامی

لطف میکنید منبع رو هم ذکر کنید.

با تشکر

 

 

 

 

پنج شنبه 22 تیر 1391  10:15 PM
تشکرات از این پست
دسترسی سریع به انجمن ها