I have a file (.txt) full of content and it contains Bengali and Arabic, I want to split (explode) the contents of that file then insert it into a database.
我有一个文件(.txt)充满内容,它包含孟加拉语和阿拉伯语,我想拆分(爆炸)该文件的内容,然后将其插入数据库。
I did this before for English and Persian, but I don't know why PHP doesn't know Bengali.
我之前为英语和波斯语做过这个,但我不知道为什么PHP不知道孟加拉语。
Some text of that file:
该文件的一些文字:
১। গৃহ যুদ্ধের সময় উষ্ট্র শাবকের মতো হয়ে যেয়ো, যার পিঠ এমন শক্ত নয় যাতে চড়া যায় অথবা বাট এমন নয় যা দোহন করা যায়।
1。 গৃহগৃহ্ধেরসময়সময়্ট্রশাবকেরমতোমতোহয়ে,যারপিঠঠএমন্ততনয়াতেতোযায়য়াবাটটএমননয়াদোহনদোহনকরাযায়。
1- قَالَ (عليهالسلام) : كُنْ فِي الْفِتْنَةِ كَابْنِ اللَّبُونِ لَا ظَهْرٌ فَيُرْكَبَ وَ لَا ضَرْعٌ فَيُحْلَبَ
1-قال(عليهالسلام):كنفيالفتنةكابناللبونلاظهرفيركبولاضرعفيحلب
২। যে লোভে অভ্যস্ত হয়ে পড়ে সে নিজেকে অবমূল্যায়ন করে, যে নিজের অভাব অনটনের কথা প্রকাশ করে সে নিজকে অবমানিত করে, আর যার জিহবা আত্মাকে পরাভূত করে তার আত্মা দুষিত হয়ে পড়ে।
২。 যেযেলোভে্যস্ততহয়েপড়েনিজেকেজেকে্যায়নয়নরে,যেযেিজেরঅভাববরকথাপ্রকাশশরেেসেিজকেজকোনিততরে,আরযারজিহবাআত্মাকেকেরাভূতভূতরেেতরররররদুষদুষদুষদুষদুষদুষদুষদুষদুষদুষদুষততপড়েপড়েপড়েপড়েপড়েপড়েপড়েপড়ে
2- وَ قَالَ (عليهالسلام) : أَزْرَى بِنَفْسِهِ مَنِ اسْتَشْعَرَ الطَّمَعَ.وَ رَضِيَ بِالذُّلِّ مَنْ كَشَفَ عَنْ ضُرِّهِ. وَ هَانَتْ عَلَيْهِ نَفْسُهُ مَنْ أَمَّرَ عَلَيْهَا لِسَانَهُ.
2-وقال(عليهالسلام):أزرىبنفسهمناستشعرالطمع.ورضيبالذلمنكشفعنضره。 وهانتعليهنفسهمنأمرعليهالسانه。
৩। কৃপণতা লজ্জা এবং কাপুরুষতা ত্রুটি। আর দারিদ্র একজন বুদ্ধিমান লোককেও তার নিজের বেলায় যুক্তি প্রদর্শন করতে ব্যর্থ করে এবং দুঃস্থ ব্যক্তি তার নিজের শহরেও আগন্তুকের মত।
3。 কৃপণতালজ্জাএবংএবংাপুরুষতাত্রুটি。 আরদারিদ্রএকজনবুদ্ধিমানলোককেওতারনিজেরবেলায়যুক্তিপ্রদর্শনকরতেব্যর্থকরেএবংদুঃস্থব্যক্তিতারনিজেরশহরেওআগন্তুকেরমত。
3- وَ قَالَ (عليهالسلام) : الْبُخْلُ عَارٌ وَ الْجُبْنُ مَنْقَصَةٌ وَ الْفَقْرُ يُخْرِسُ الْفَطِنَ عَنْ حُجَّتِهِ وَ الْمُقِلُّ غَرِيبٌ فِي بَلْدَتِهِ
3-وقال(عليهالسلام):البخلعاروالجبنمنقصةوالفقريخرسالفطنعنحجتهوالمقلغريبفيبلدته
৪। অযোগ্যতা বজ্রাঘাত, ধৈর্য সাহসিকতা, মিতাচার ধন-সম্পদ, আত্মপ্রত্যয় বর্ম এবং সর্বোত্তম সাথি হলো আল্লাহর ইচ্ছায় সমর্পিত হওয়া।
4。 অযোগ্যতাবজ্রাঘাত,ধৈর্যযাহসিকতা,মিতাচারধন-সম্পদ,আত্মপ্রত্যয়যয়র্মমএবংর্বোত্তমতমাথিহলোহলো্লাহরইচ্ছায়য়র্পিততা。
4- وَ قَالَ (عليهالسلام) : الْعَجْزُ آفَةٌ وَ الصَّبْرُ شَجَاعَةٌ وَ الزُّهْدُ ثَرْوَةٌ وَ الْوَرَعُ جُنَّةٌ وَ نِعْمَ الْقَرِينُ الرِّضَى
4-وقال(عليهالسلام):العجزآفةوالصبرشجاعةوالزهدثروةوالورعجنةونعمالقرينالرضى
৫। জ্ঞান শ্রদ্ধাস্পদ সম্পত্তি, সদাচারণ নতুন পোষাক এবং চিন্তা স্বচ্ছ আয়না।
5。 জ্ঞানন্রদ্ধাস্পদপদ্পত্তি,সদাচারণণনতুনাককএবংিন্তাস্বচ্ছছা。
5- وَ قَالَ (عليهالسلام):الْعِلْمُ وِرَاثَةٌ كَرِيمَةٌ وَ الْآدَابُ حُلَلٌ مُجَدَّدَةٌ وَ الْفِكْرُ مِرْآةٌ صَافِيَةٌ
5-وقال(عليهالسلام):العلموراثةكريمةوالآدابحللمجددةوالفكرمرآةصافية
৬। জ্ঞানীদের বক্ষ তার গুপ্ত বিষয়ের সিন্দুক, প্রফুল্লতা বন্ধুত্বের বন্ধন এবং কার্যকর ধৈর্য সকল দোষত্রুটির কবর।
6。添加了更多信息
6- وَ قَالَ (عليهالسلام): صَدْرُ الْعَاقِلِ صُنْدُوقُ سِرِّهِ وَ الْبَشَاشَةُ حِبَالَةُ الْمَوَدَّةِ وَ الِاحْتِمَالُ قَبْرُ الْعُيُوبِئ {وَ رُوِيَ أَنَّهُ قَالَ فِي الْعِبَارَةِ عَنْ هَذَا الْمَعْنَى أَيْضاً الْمَسْأَلَةُ خِبَاءُ الْعُيُوبِ وَ مَنْ رَضِيَ عَنْ نَفْسِهِ كَثُرَ السَّاخِطُ عَلَيْهِ}.
6-وقال(عليهالسلام):صدرالعاقلصندوقسرهوالبشاشةحبالةالمودةوالاحتمالقبرالعيوبئ{ورويأنهقالفيالعبارةعنهذاالمعنىأيضاالمسألةخباءالعيوبومنرضيعننفسهكثرالساخطعليه}。
৭। বদান্যতা কার্যকর চিকিৎসা, এ জীবনের আমল পরকালে চোখের সামনে দেখতে পাবে।
7。 বদান্যতাকার্যকরচিকিৎসা,এএরআমলআমলরকালেলেরসামনেমনেদেখতোবে。
7- وَ الصَّدَقَةُ دَوَاءٌ مُنْجِحٌ وَ أَعْمَالُ الْعِبَادِ فِي عَاجِلِهِمْ نُصْبُ أَعْيُنِهِمْ فِي آجَالِهِمْ
7-والصدقةدواءمنجحوأعمالالعبادفيعاجلهمنصبأعينهمفيآجالهم
৮। মানুষ কী আশ্চর্যজনক যে, সে চর্বি আর এক টুরকা মাংস দ্বারা কথা বলে, একটা হাড় দ্বারা শুনে এবং একটা ছিদ্র দ্বারা শ্বাস-প্রশ্বাস নেয়।
8。 মানুষকীআশ্চর্যজনকযে,সেচর্বিআরএকটুরকামাংসদ্বারাকথাবলে,একটাহাড়দ্বারাশুনেএবংএকটাছিদ্রদ্বারাশ্বাস-প্রশ্বাসনেয়。
8- وَ قَالَ (عليهالسلام) :اعْجَبُوا لِهَذَا الْإِنْسَانِ يَنْظُرُ بِشَحْمٍ وَ يَتَكَلَّمُ بِلَحْمٍ وَ يَسْمَعُ بِعَظْمٍ وَ يَتَنَفَّسُ مِنْ خَرْمٍ.
8-وقال(عليهالسلام):اعجبوالهذاالإنسانينظربشحموييتكلمبلحموييممعبعظمويتنفسمنخرم。
৯। কারো ভাগ্য সুপ্রসন্ন হলে পৃথিবী যখন অনুকূলে আসে তখন অন্যের ভালো কাজের সুকীর্তি তার নামে হয়, আর পৃথিবী প্রতিকূলে গেলে নিজের ভালো কাজের সুনাম থেকে সে বঞ্চিত হয়।
9。 কারোভাগ্যসুপ্রসন্নহলেপৃথিবীযখনঅনুকূলেআসেতখনঅন্যেরভালোকাজেরসুকীর্তিতারনামেহয়,আরপৃথিবীপ্রতিকূলেগেলেনিজেরভালোকাজেরসুনামথেকেসেবঞ্চিতহয়。
9- وَ قَالَ (عليهالسلام)إِذَا أَقْبَلَتِ الدُّنْيَا عَلَى أَحَدٍ أَعَارَتْهُ مَحَاسِنَ غَيْرِهِ وَ إِذَا أَدْبَرَتْ عَنْهُ سَلَبَتْهُ مَحَاسِنَ نَفْسِهِ.
9-وقال(عليهالسلام)إذاأقبلتالدنياعلىأحدأعارتهمحاسنغيرهوإذاأدبرتعنهسلبتهمحاسننفسه。
১০। মানুষের সাথে দেখা হলে এমন আচরণ করবে যেন তোমার মৃত্যুতে তারা কাঁদে এবং তুমি বেঁচে থাকলে তারা তোমার দীর্ঘায়ূ কামনা করে।
10。 মানুষেরসাথেদেখাহলেএমনআচরণকরবেযেনতোমারমৃত্যুতেতারাকাঁদেএবংতুমিবেঁচেথাকলেতারাতোমারদীর্ঘায়ূকামনাকরে。
10- وَ قَالَ (عليهالسلام):خَالِطُوا النَّاسَ مُخَالَطَةً إِنْ مِتُّمْ مَعَهَا بَكَوْا عَلَيْكُمْ وَ إِنْ عِشْتُمْ حَنُّوا إِلَيْكُمْ.
10-وقال(عليهالسلام):خالطواالناسمخالطةإنمتممعهابكواعليكموإنعشتمحنواإليكم。
১১। প্রতিপক্ষের ওপর জয়ী হলে তাকে ক্ষমা করো।
11。 প্রতিপক্ষেরওপরজয়ীজয়ীহলোকেকে্ষমাকরো。
11- وَ قَالَ (عليهالسلام) : إِذَا قَدَرْتَ عَلَى عَدُوِّكَ فَاجْعَلِ الْعَفْوَ عَنْهُ شُكْراً لِلْقُدْرَةِ عَلَيْهِ
11-وقال(عليهالسلام):إذاقدرتعلىعدوكفاجعلالعفوعنهشكراللقدرةعليه
I am going to pipe character to explode (as you can see at the end of all Bengali sentences there is a | what call it pipe)
我要管道角色爆炸(你可以看到所有孟加拉语句子的末尾有一个叫什么叫管道)
and When I copy that pipe (|) to using it in explode I don't know why php does not know it, and do not explode anything!
当我复制该管道(|)以在爆炸中使用它时我不知道为什么php不知道它,并且不会爆炸任何东西!
$text=file_get_contents("1-40.txt");
$explode=explode("।",$text);
print_r($explode);
What is the solution?
解决办法是什么?
*note: I don't know Bengali and Arabic
*注意:我不知道孟加拉语和阿拉伯语
3 个解决方案
#1
Maybe check your file encoding or enviroment settings.
也许检查您的文件编码或环境设置。
I just used a UTF-8 file, copied your text and it works "fine".
我只是使用了一个UTF-8文件,复制了你的文字并且工作“很好”。
Have a look here.
看看这里。
var_dump( explode('।', $text) );
var_dump(explode('。',$ text));
The char used as a delimiter is named devanagari danda 0x964
/ ।
- you can find it with some online unicode lookup tools like this one
用作分隔符的字符名为devanagari danda 0x964 /。 - 你可以通过一些像这样的在线unicode查找工具找到它
#2
It is not PHP's fault, as it works well in this demo.
这不是PHP的错,因为它在这个演示中运行良好。
I would say that you have an encoding issue with that .txt
file. Maybe you will just want to "explode" on numbers instead, using preg_split()
:
我会说你的.txt文件存在编码问题。也许你只想在数字上“爆炸”,使用preg_split():
preg_split("/\d\-/", $text);
#3
I believe that the character ।
is used to format the numbered list in Bengali (as the dot in English format, like the 1. 2. 3. etc) and at least in the example provided all of the paragraphs are separated using newline characters isolating the Bengali and Arabic versions of a sentence. So, to get the paragraphs separated you may use the following:
我相信这个角色。用于格式化孟加拉语中的编号列表(如英文格式的点,如1. 2. 3.等),至少在示例中,所有段落都使用换行符分隔孟加拉语和阿拉伯语版本一句话。因此,要将段落分开,您可以使用以下内容:
$arr = array_filter(explode(PHP_EOL, $txt));
var_dump($arr);
#1
Maybe check your file encoding or enviroment settings.
也许检查您的文件编码或环境设置。
I just used a UTF-8 file, copied your text and it works "fine".
我只是使用了一个UTF-8文件,复制了你的文字并且工作“很好”。
Have a look here.
看看这里。
var_dump( explode('।', $text) );
var_dump(explode('。',$ text));
The char used as a delimiter is named devanagari danda 0x964
/ ।
- you can find it with some online unicode lookup tools like this one
用作分隔符的字符名为devanagari danda 0x964 /。 - 你可以通过一些像这样的在线unicode查找工具找到它
#2
It is not PHP's fault, as it works well in this demo.
这不是PHP的错,因为它在这个演示中运行良好。
I would say that you have an encoding issue with that .txt
file. Maybe you will just want to "explode" on numbers instead, using preg_split()
:
我会说你的.txt文件存在编码问题。也许你只想在数字上“爆炸”,使用preg_split():
preg_split("/\d\-/", $text);
#3
I believe that the character ।
is used to format the numbered list in Bengali (as the dot in English format, like the 1. 2. 3. etc) and at least in the example provided all of the paragraphs are separated using newline characters isolating the Bengali and Arabic versions of a sentence. So, to get the paragraphs separated you may use the following:
我相信这个角色。用于格式化孟加拉语中的编号列表(如英文格式的点,如1. 2. 3.等),至少在示例中,所有段落都使用换行符分隔孟加拉语和阿拉伯语版本一句话。因此,要将段落分开,您可以使用以下内容:
$arr = array_filter(explode(PHP_EOL, $txt));
var_dump($arr);