Pelajari bagaimana untuk menghitung kata dari sebuah string menggunakan php.
Mempertimbangkan kata-kata yang dipisahkan oleh spasi hanya menjadi string teks, selanjutnya fungsi mungkin terlihat sempurna untuk tujuan:
function count_words($str)
{
$no = count(explode(" ",$str));
return $no;
}
Fungsi ini pecah menjadi potongan-potongan string dipisahkan oleh spasi dan menghitung mereka.
Tetapi hal-hal yang tidak begitu mudah karena tampaknya. Mencari kasus-kasus tertentu, kami mungkin menemukan kasus berikut:
1. Pengguna memasuki dua atau lebih daripada satu spasi.
Ex. Menggunakan fungsi yang diberikan untuk kalimat berikut: "Ini adalah kalimat pertama" akan kembali 14 kata bukan 5, karena terlalu berhitung ruang sebagai kata.
2. Ia juga dihitung tanda tanda baca
Ex: Untuk "Ini adalah kedua, akan dihitung sebagai salah baik", akan dihitung 12, bukan 11 koma karena terlalu dihitung.
Mempertimbangkan ini kesalahan kami akan datang dengan fungsi baru yang akan memecahkan masalah tersebut.
function adv_count_words($str)
{
$words = 0;
$str = eregi_replace(" +", " ", $str);
$array = explode(" ", $str);
for($i=0;$i < count($array);$i++)
{
if (eregi("[0-9A-Za-zÀ-ÖØ-öø-ÿ]", $array[$i]))
$words++;
}
return $words;
}
Kode dijelaskan:
Kami mengganti semua karakter ruang-turut dengan satu ruang karakter, script untuk menghitung ruang untuk tidak terlalu:
$str = eregi_replace(" +", " ", $str);
Break string menjadi potongan-potongan yang dipisahkan oleh ruang dan tempat mereka menjadi kaget:
$str = eregi_replace(" +", " ", $str);
Untuk setiap string dalam array, kami membuat satu lagi untuk pengujian memastikan itu adalah kata. Kita berasumsi bahwa orang hanya string yang mengandung setidaknya surat karakter (kami tidak akan dihitung koma misalnya).
Baris:
if (eregi("[0-9A-Za-zÀ-ÖØ-öø-ÿ]", $array[$i]))
$words++;
untuk memeriksa keberadaan surat karakter, termasuk karakter khusus dan bertahap
jumlah kata jika ditemukan.
Artikel Lain :