KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've made the next function to return a specific number of words from a text: function brief_text($text, $num_words = 50) { $words = str_word_count($text, 1); $required_words = array_slice($words, 0, $num_words); return implode(" ", $required_words); } and it works pretty well with English language but when I try to use it with Arabic language it fails and doesn't return words as expected. For example: $text_en = "Cairo is the capital of Egypt and Paris is the capital of France"; echo brief_text($text_en, 10); will output Cairo is the capital of Egypt and Paris is the while $text_ar = "القاهرة هى عاصمة مصر وباريس هى عاصمة فرنسا"; echo brief_text($text_ar, 10); will output � � � � � � � � � � . I know that the problem is with the str_word_count function but I don't know how to fix it. UPDATE I have already written another function that works pretty good with both English and Arabic languages, but I was looking for a solution for the problem caused by str_word_count() function when using with Arabic. Anyway here is my other function: function brief_text($string, $number_of_required_words = 50) { $string = trim(preg_replace('/\s+/', ' ', $string)); $words = explode(" ", $string); $required_words = array_slice($words, 0, $number_of_required_words); // get sepecific number of elements from the array return implode(" ", $required_words); }
Tags (comma-separated)
Save Edits
Cancel