// Saya sangat bosan. Tiba-tiba saya berkeinginan dan ingin mengimplementasikan kembali beberapa fungsi yang dienkapsulasi dalam PHP menggunakan PHP.
//Jadi kode berikut ini terutama mengimplementasikan beberapa fungsi pemrosesan string di PHP, dan juga mengimplementasikan beberapa PHP
// Tidak, tapi fungsi pemrosesan string yang sama juga berguna.
// Sekarang, misalnya menggunakan C/VBScript/Perl, dll., maka Anda dapat memiliki pustaka fungsi Anda sendiri.
// Fungsi berikut belum tentu berjalan dengan sukses, fungsi tersebut hanya untuk pembelajaran.
//
// Jika tidak ada pernyataan khusus, itu semua adalah karya asli heiyeluren. Harap simpan informasi penulis jika Anda ingin menggunakan fungsi apa pun.
/**
* Rekonstruksi Fungsi String
*
* Hak Cipta (c) 2005 heiyeluren < [email protected] >
* Penulis: heiyeluren < [email protected] >
* $Id: StringFunctions.php,v 0.1 e 29-5-2005 23:21 heiyeluren Exp $
**/
// {{{ strlen()
/**
* Hitung panjang string
*
* @param string $str memerlukan jumlah variabel string panjang
* @return int hasil penghitungan pengembalian
* @versi v0.1
* @buat 24-5-2005
* @dimodifikasi 24-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strlen1($str)
{
jika ($str == '')
kembali 0;
$hitungan = 0;
sementara (1)
{
jika ($str[$hitungan] != BATAL)
{
$hitung++;
melanjutkan;
}
kalau tidak
merusak;
}
kembalikan $hitungan;
}
// }}}
// {{{ substr()
/**
* Dapatkan sub string
*
* @param string $str perlu mendapatkan variabel sub string
* @param int $mulai mulai dapatkan sub string
* @param int $length perlu mendapatkan panjang string
* @return string mengembalikan sub string
* @versi v0.2
* @buat 24-5-2005
* @dimodifikasi 25-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi substr1($str, $mulai, $panjang=0)
{
jika ($str == '')
kembali;
if ($mulai > strlen($str))
kembali;
if (($panjang != NULL) && ($mulai > 0) && ($panjang > strlen($str)-$mulai))
kembali;
if (($panjang != NULL) && ($mulai < 0) && ($panjang > strlen($str)+$mulai))
kembali;
jika ($panjang == NULL)
$panjang = (strlen($str) - $mulai);
jika ($mulai < 0)
{
untuk ($i=(strlen($str)+$mulai); $i<(strlen($str)+$mulai+$panjang); $i++)
{
$substr .= $str[$i];
}
}
jika ($panjang > 0)
{
untuk ($i=$mulai; $i<($mulai+$panjang); $i++)
{
$substr .= $str[$i];
}
}
if ($panjang < 0)
{
untuk ($i=$mulai; $i<(strlen($str)+$panjang); $i++)
{
$substr .= $str[$i];
}
}
kembalikan $substr;
}
// }}}
// {{{ strrev()
/**
* Pembalikan urutan string
*
* @param string $str memerlukan variabel string pembalikan
* @return string pembalikan string
* @versi v0.1 www.knowsky.com
* @buat 24-5-2005
* @dimodifikasi 24-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strrev1($str)
{
jika ($str == '')
kembali 0;
untuk ($i=(strlen($str)-1); $i>=0; $i--)
{
$rev_str .= $str[$i];
}
kembalikan $rev_str;
}
// }}}
// {{{ strcmp()
/**
*Perbandingan string
*
* @param string $s1 string pertama
* @param string $s2 string kedua
* @return int return -1,str1 < str2; kembalikan 1, str1 > str2, str1 = str2,
* kembalikan 0, lainnya, kembalikan salah
* @versi v0.1
* @buat 24-5-2005
* @dimodifikasi 24-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strcmp1($s1, $s2)
{
jika (strlen($s1) < strlen($s2))
kembali -1;
jika (strlen($s1) > strlen($s2))
kembali 1;
untuk ($i=0; $i<strlen($s1); $i++)
{
jika ($s1[$i] == $s2[$i])
melanjutkan;
kalau tidak
kembali salah;
}
kembali 0;
}
// }}}
// {{{ strchr(), strstr(), strpos()
/**
* Temukan kemunculan pertama sebuah string
*
* @param string $str string induk
* @param string $substr memerlukan sub string yang cocok
* @return int return temukan sub string di string induk pertama,
* jika tidak ditemukan, kembalikan salah
* @versi v0.4
* @buat 24-5-2005
* @dimodifikasi 29-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strchr1($str, $substr)
{
$m = strlen($str);
$n = strlen($substr);
jika ($m < $n)
kembali salah;
untuk ($i=0; $i<=($m-$n+1); $i++)
{
$sub = substr($str, $i, $n);
jika (strcmp($sub, $substr) == 0)
kembalikan $i;
}
kembali salah;
}
// }}}
// {{{ str_replace()
/**
* Ganti semua kemunculan string pencarian dengan string pengganti
*
* @param string $substr perlu mengganti variabel sub string
* @param string $newsubstr sub string baru
* @param string $str mengoperasikan string induk
* @return string mengembalikan penggantian setelah string induk baru
* @versi v0.2
* @buat 24-5-2005
* @dimodifikasi 29-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi str_replace1($substr, $newsubstr, $str)
{
$m = strlen($str);
$n = strlen($substr);
$x = strlen($newsubstr);
jika (strchr($str, $substr) == salah)
kembali salah;
untuk ($i=0; $i<=($m-$n+1); $i++)
{
$i = strchr($str, $substr);
$str = str_hapus($str, $i, $n);
$str = str_insert($str, $i, $newstr);
}
kembalikan $str;
}
// }}}
/************ Fungsi pemrosesan string berikut tidak tersedia di PHP. Saya menulisnya sendiri untuk bersenang-senang ***************/
// {{ { masukkan_str(), hapus_str(), indeks_str()
/**
* String dasar beroperasi
*
* @param string $str perlu mendapatkan variabel sub string
* @param int $mulai mulai dapatkan sub string
* @param int $length perlu mendapatkan panjang string
* @return string mengembalikan sub string
* @versi v0.1
* @buat 24-5-2005
* @dimodifikasi 24-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi str_insert($str, $i, $substr)
{
untuk($j=0; $j<$i; $j++)
{
$startstr .= $str[$j];
}
untuk ($j=$i; $j<strlen($str); $j++)
{
$str terakhir .= $str[$j];
}
$str = ($startstr .$substr .$laststr);
kembalikan $str;
}
fungsi str_hapus($str, $i, $j)
{
untuk ($c=0; $c<$i; $c++)
{
$startstr .= $str[$c];
}
untuk ($c=($i+$j); $c<strlen($str); $c++)
{
$str terakhir .= $str[$c];
}
$str = ($startstr .$laststr);
kembalikan $str;
}
// }}}
// {{{ strcpy()
/**
* Gunakan string pengganti sub string yang ditunjuk
*
* @param string $str perlu mendapatkan variabel sub string
* @param int $mulai mulai dapatkan sub string
* @param int $length perlu mendapatkan panjang string
* @return string mengembalikan sub string
* @versi v0.1
* @buat 27-5-2005
* @dimodifikasi 27-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strcpy($s1, $s2)
{
jika (strlen($s1) == BATAL)
kembali;
jika (!isset($s2))
kembali;
untuk ($i=0; $i<strlen($s1); $i++)
{
$s2[] = $s1[$i];
}
kembalikan $s2;
}
// }}}
// {{{ strcat()
/**
* Gunakan string pengganti sub string yang ditunjuk
*
* @param string $str perlu mendapatkan variabel sub string
* @param int $mulai mulai dapatkan sub string
* @param int $length perlu mendapatkan panjang string
* @return string mengembalikan sub string
* @versi v0.1
* @buat 27-5-2005
* @dimodifikasi 27-5-2005
* @penulis heiyeluren < [email protected] >
*/
fungsi strcat($s1, $s2)
{
jika (!isset($s1))
kembali;
jika (!isset($s2))
kembali;
$newstr = $s1 $s2;
kembalikan $newsstr;
}
// }}}
// {{{ php_encode(), php_decode()
/**
* Fungsi enkode/dekode string sederhana
*
* @param string $str memerlukan kode/variabel string yang dikodekan
* @mengembalikan kode string/mengkodekan setelah string
* @versi v0.2
* @buat 2005-3-11
* @dimodifikasi 24-5-2005
* @penulis heiyeluren < [email protected] >
*/
/* Fungsi pengkodean string */
fungsi php_encode($str)
{
jika ($str=='' && strlen($str)>128)
kembali salah;
untuk($i=0; $i<strlen($str); $i++)
{
$c = ord($str[$i]);
jika ($c>31 && $c<107)
$c+= 20;
jika ($c>106 && $c<127)
$c -= 75;
$kata = chr($c);
$s .= $kata;
}
kembalikan $s;
}
/* Fungsi dekode string */
fungsi php_decode($str)
{
jika ($str=='' && strlen($str)>128)
kembali salah;
untuk($i=0; $i<strlen($str); $i++)
{
$c = pesanan($kata);
jika ($c>106 && $c<127)
$c = $c-20;
jika ($c>31 && $c<107)
$c = $c+75;
$kata = chr($c);
$s .= $kata;
}
kembalikan $s;
}
// }}}
// {{{ php_enkripsi(), php_dekripsi()
/**
* Fungsi enkripsi/dekripsi string sederhana
*
* @param string $str memerlukan variabel string crypt
* @return string mengenkripsi/mendekripsi setelah string
* @versi v0.1
* @buat 27-5-2005
* @dimodifikasi 29-5-2005
* @penulis heiyeluren < [email protected] >
*/
/* menentukan kunci ruang bawah tanah */
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
/* Fungsi enkripsi string */
fungsi php_encrypt($str)
{
global $encrypt_key, $decrypt_key;
jika (strlen($str) == 0)
kembali salah;
untuk ($i=0; $i<strlen($str); $i++)
{
untuk ($j=0; $j<strlen($encrypt_key); $j++)
{
jika ($str[$i] == $encrypt_key[$j])
{
$enstr .= $decrypt_key[$j];
merusak;
}
}
}
kembalikan $enstr;
}
/* Fungsi dekripsi string */
fungsi php_decrypt($str)
{
global $encrypt_key, $decrypt_key;
jika (strlen($str) == 0)
kembali salah;
untuk ($i=0; $i<strlen($str); $i++)
{
untuk ($j=0; $j<strlen($decrypt_key); $j++)
{
jika ($str[$i] == $decrypt_key[$j])
{
$enstr .= $encrypt_key[$j];
merusak;
}
}
}
kembalikan $enstr;
}
// }}}
Jika kodenya kurang jelas disarankan untuk mengecek link blog saya di blogchina: