// ฉันเบื่อจริงๆ จู่ๆ ฉันก็เกิดความคิดขึ้นมาและอยากจะนำฟังก์ชันที่ห่อหุ้มใน PHP มาใช้ใหม่โดยใช้ PHP
//ดังนั้นโค้ดต่อไปนี้จะใช้ฟังก์ชันการประมวลผลสตริงบางส่วนใน PHP เป็นหลัก และยังใช้ PHP บางตัวด้วย
// ไม่ แต่ฟังก์ชันการประมวลผลสตริงเดียวกันก็มีประโยชน์เช่นกัน
// ตัวอย่างเช่น เมื่อใช้ C/VBScript/Perl เป็นต้น คุณก็สามารถมีไลบรารีฟังก์ชันของคุณเองได้
// ฟังก์ชั่นต่อไปนี้อาจไม่จำเป็นต้องทำงานได้สำเร็จ แต่มีไว้สำหรับการเรียนรู้เท่านั้น
-
// หากไม่มีข้อความพิเศษ เป็นงานต้นฉบับของ heiyeluren ทั้งหมด โปรดเก็บข้อมูลผู้เขียนไว้หากคุณต้องการใช้ฟังก์ชันใดๆ
-
* สร้างฟังก์ชั่นสตริงใหม่
-
* ลิขสิทธิ์ (c) 2005 heiyeluren < [email protected] >
* ผู้แต่ง: heiyeluren < [email protected] >
* $Id: StringFunctions.php,v 0.1 e 2005-5-29 23:21 heiyeluren Exp $
-
// {{{ strlen()
-
* นับความยาวสตริง
-
* @param string $str จำเป็นต้องนับตัวแปรสตริงความยาว
* @return int ผลการนับผลตอบแทน
* @เวอร์ชั่น v0.1
* @create 24/05/2005
* @ แก้ไขเมื่อ 24-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strlen1($str)
-
ถ้า ($str == '')
กลับ 0;
$นับ = 0;
ในขณะที่ (1)
-
ถ้า ($str[$count] != NULL)
-
$นับ++;
ดำเนินการต่อ;
-
อื่น
หยุดพัก;
-
ส่งคืนจำนวน $;
-
-
// {{{ ย่อย ()
-
* รับสตริงย่อย
-
* @param string $str จำเป็นต้องรับตัวแปรสตริงย่อย
* @param int $start start รับสตริงย่อย
* @param int $length จำเป็นต้องได้รับความยาวของสตริง
* @return string ส่งคืนสตริงย่อย
* @เวอร์ชั่น v0.2
* @create 24/05/2005
* @ แก้ไขเมื่อ 25-05-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น substr1($str, $start, $length=0)
-
ถ้า ($str == '')
กลับ;
ถ้า ($เริ่มต้น > strlen($str))
กลับ;
ถ้า (($length != NULL) && ($start > 0) && ($length > strlen($str)-$start))
กลับ;
ถ้า (($length != NULL) && ($start < 0) && ($length > strlen($str)+$start))
กลับ;
ถ้า ($ความยาว == NULL)
$length = (strlen($str) - $เริ่มต้น);
ถ้า ($ เริ่มต้น < 0)
-
สำหรับ ($i=(strlen($str)+$start); $i<(strlen($str)+$start+$length); $i++)
-
$substr .= $str[$i];
-
}
ถ้า ($ความยาว > 0)
-
สำหรับ ($i=$start; $i<($start+$length); $i++)
-
$substr .= $str[$i];
-
}
ถ้า ($ความยาว < 0)
-
สำหรับ ($i=$start; $i<(strlen($str)+$length); $i++)
-
$substr .= $str[$i];
-
-
ส่งคืน $substr;
-
-
// {{{ strrev()
-
* ลำดับสตริงการกลับรายการ
-
* @param string $str ต้องการตัวแปรสตริงการกลับรายการ
* @return string สตริงการกลับรายการ
* @version v0.1 www.knowsky.com
* @create 24/05/2005
* @ แก้ไขเมื่อ 24-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strrev1($str)
-
ถ้า ($str == '')
กลับ 0;
สำหรับ ($i=(strlen($str)-1); $i>=0; $i--)
-
$rev_str .= $str[$i];
-
กลับ $rev_str;
-
-
// {{{ strcmp()
-
* การเปรียบเทียบสตริง
-
* @param string $s1 สตริงแรก
* @param string $s2 สตริงที่สอง
* @return int กลับ -1,str1 < str2; กลับ 1, str1 > str2, str1 = str2,
* ส่งกลับ 0, อื่นๆ ส่งกลับเท็จ
* @เวอร์ชั่น v0.1
* @create 24/05/2005
* @ แก้ไขเมื่อ 24-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strcmp1($s1, $s2)
-
ถ้า (strlen($s1) < strlen($s2))
กลับ -1;
ถ้า (strlen($s1) > strlen($s2))
ส่งคืน 1;
สำหรับ ($i=0; $i<strlen($s1); $i++)
-
ถ้า ($s1[$i] == $s2[$i])
ดำเนินการต่อ;
อื่น
กลับเท็จ;
-
กลับ 0;
-
-
// {{{ strchr(), strstr(), strpos()
-
* ค้นหาการเกิดขึ้นครั้งแรกของสตริง
-
* @param string $str สตริงพาเรนต์
* @param string $substr จำเป็นต้องจับคู่สตริงย่อย
* @return int return ค้นหาสตริงย่อยที่สตริงหลักเป็นอันดับแรก
* ไม่พบ ให้คืนค่าเท็จ
* @เวอร์ชั่น v0.4
* @create 24/05/2005
* @ แก้ไขเมื่อ 29-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strchr1($str, $substr)
-
$m = strlen($str);
$n = strlen($substr);
ถ้า ($m < $n)
กลับเท็จ;
สำหรับ ($i=0; $i<=($m-$n+1); $i++)
-
$sub = substr($str, $i, $n);
ถ้า (strcmp($sub, $substr) == 0)
ส่งคืน $i;
-
กลับเท็จ;
-
-
// {{{ str_replace()
-
* แทนที่สตริงการค้นหาทั้งหมดที่เกิดขึ้นด้วยสตริงการแทนที่
-
* @param string $substr จำเป็นต้องแทนที่ตัวแปรสตริงย่อย
* @param string $newsubstr สตริงย่อยใหม่
* @param string $str ดำเนินการสตริงพาเรนต์
* @return string return แทนที่หลังจากสตริงพาเรนต์ใหม่
* @เวอร์ชั่น v0.2
* @create 24/05/2005
* @ แก้ไขเมื่อ 29-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น str_replace1($substr, $newsubstr, $str)
-
$m = strlen($str);
$n = strlen($substr);
$x = strlen($newsubstr);
ถ้า (strchr($str, $substr) == false)
กลับเท็จ;
สำหรับ ($i=0; $i<=($m-$n+1); $i++)
-
$i = strchr($str, $substr);
$str = str_delete($str, $i, $n);
$str = str_insert($str, $i, $newstr);
-
กลับ $str;
-
-
/************ ฟังก์ชั่นการประมวลผลสตริงต่อไปนี้ไม่มีใน PHP ฉันเขียนมันเองเพื่อความสนุกสนาน ***************/
// {{ { insert_str( ), Delete_str(), index_str()
-
* การทำงานของสตริงพื้นฐาน
-
* @param string $str จำเป็นต้องรับตัวแปรสตริงย่อย
* @param int $start start รับสตริงย่อย
* @param int $length จำเป็นต้องได้รับความยาวของสตริง
* @return string ส่งคืนสตริงย่อย
* @เวอร์ชั่น v0.1
* @create 24/05/2005
* @ แก้ไขเมื่อ 24-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น str_insert($str, $i, $substr)
{
สำหรับ($j=0; $j<$i; $j++)
-
$startstr .= $str[$j];
}
สำหรับ ($j=$i; $j<strlen($str); $j++)
-
$laststr .= $str[$j];
-
$str = ($startstr . $substr . $laststr);
กลับ $str;
-
ฟังก์ชั่น str_delete($str, $i, $j)
-
สำหรับ ($c=0; $c<$i; $c++)
-
$startstr .= $str[$c];
}
สำหรับ ($c=($i+$j); $c<strlen($str); $c++)
-
$laststr .= $str[$c];
}
$str = ($startstr . $laststr
ส่งคืน $str;
-
-
// {{{ strcpy()
-
* ใช้สตริงย่อยที่กำหนดเพื่อแทนที่สตริง
-
* @param string $str จำเป็นต้องรับตัวแปรสตริงย่อย
* @param int $start start รับสตริงย่อย
* @param int $length จำเป็นต้องได้รับความยาวของสตริง
* @return string ส่งคืนสตริงย่อย
* @เวอร์ชั่น v0.1
* @create 27-5-2548
* @ แก้ไขเมื่อ 27-05-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strcpy($s1, $s2)
-
ถ้า (strlen($s1) == NULL)
กลับ;
ถ้า (!isset($s2))
กลับ;
สำหรับ ($i=0; $i<strlen($s1); $i++)
-
$s2[] = $s1[$i];
-
ส่งคืน $s2;
-
-
// {{{ strcat()
-
* ใช้สตริงย่อยที่กำหนดเพื่อแทนที่สตริง
-
* @param string $str จำเป็นต้องรับตัวแปรสตริงย่อย
* @param int $start start รับสตริงย่อย
* @param int $length จำเป็นต้องได้รับความยาวของสตริง
* @return string ส่งคืนสตริงย่อย
* @เวอร์ชั่น v0.1
* @create 27-5-2548
* @ แก้ไขเมื่อ 27-05-2548
* @ผู้เขียน heiyeluren < [email protected] >
-
ฟังก์ชั่น strcat($s1, $s2)
-
ถ้า (!isset($s1))
กลับ;
ถ้า (!isset($s2))
$newstr = $s1 .
กลับ
$newsstr;
-
-
// {{{ php_encode(), php_decode()
-
* ฟังก์ชั่นเข้ารหัส / ถอดรหัสสตริงอย่างง่าย
-
* @param string $str ต้องการโค้ด/เข้ารหัสตัวแปรสตริง
* @return รหัสสตริง/เข้ารหัสหลังสตริง
* @เวอร์ชั่น v0.2
* @create 2005-3-11
* @ แก้ไขเมื่อ 24-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
*/
/* ฟังก์ชั่นเข้ารหัสสตริง */
ฟังก์ชั่น php_encode($str)
-
ถ้า ($str=='' && strlen($str)>128)
กลับเท็จ;
for($i=0; $i<strlen($str); $i++)
-
$c = อ๊อด($str[$i]);
ถ้า ($c>31 && $c<107)
$c += 20;
ถ้า ($c>106 && $c<127)
$ซี -= 75;
$คำ = chr($c);
$s .= $คำ;
-
ส่งคืน $s;
-
/* ฟังก์ชั่นถอดรหัสสตริง */
ฟังก์ชั่น php_decode($str)
-
ถ้า ($str=='' && strlen($str)>128)
กลับเท็จ;
for($i=0; $i<strlen($str); $i++)
-
$c = ord($คำ);
ถ้า ($c>106 && $c<127)
$ซี = $c-20;
ถ้า ($c>31 && $c<107)
$ซี = $ซี+75;
$คำ = chr($c);
$s .= $คำ;
-
ส่งคืน $s;
-
-
// {{{ php_encrypt(), php_decrypt()
-
* ฟังก์ชั่นเข้ารหัส / ถอดรหัสสตริงอย่างง่าย
-
* @param string $str ต้องการตัวแปรสตริง crypt
* @return สตริงเข้ารหัส/ถอดรหัสหลังสตริง
* @เวอร์ชั่น v0.1
* @create 27-5-2548
* @ แก้ไขเมื่อ 29-5-2548
* @ผู้เขียน heiyeluren < [email protected] >
*/
/* กำหนดคีย์ crypt */
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
/* ฟังก์ชั่นเข้ารหัสสตริง */
ฟังก์ชั่น php_encrypt($str)
-
$encrypt_key ทั่วโลก, $decrypt_key;
if (strlen($str) == 0)
กลับเท็จ;
สำหรับ ($i=0; $i<strlen($str); $i++)
-
สำหรับ ($j=0; $j<strlen($encrypt_key); $j++)
-
ถ้า ($str[$i] == $encrypt_key[$j])
-
$enstr .= $decrypt_key[$j];
หยุดพัก;
-
-
-
กลับ $enstr;
-
/* ฟังก์ชั่นถอดรหัสสตริง */
ฟังก์ชั่น php_decrypt($str)
-
$encrypt_key ทั่วโลก, $decrypt_key;
if (strlen($str) == 0)
กลับเท็จ;
สำหรับ ($i=0; $i<strlen($str); $i++)
-
สำหรับ ($j=0; $j<strlen($decrypt_key); $j++)
-
ถ้า ($str[$i] == $decrypt_key[$j])
-
$enstr .= $encrypt_key[$j];
หยุดพัก;
-
-
-
ส่งคืน $enstr;
-
-
หากรหัสไม่ชัดเจนแนะนำให้ตรวจสอบลิงค์ซึ่งเป็นบล็อกของฉันใน blogchina: