如何使用 PHP 分解孟加拉语文本以将所有内容保存到数据库?

How to explode a Bengali text using PHP to save all content to Database?

我有一个内容丰富的文件 (.txt),其中包含孟加拉语和阿拉伯语,我想拆分(分解)该文件的内容,然后将其插入数据库。

我以前为英语和波斯语做过这个,但我不知道为什么 PHP 不懂孟加拉语。

该文件的一些文本:

১। গৃহ যুদ্ধের সময় উষ্ট্র শাবকের মতো হয়ে যেয়ো, যার পিঠ এমন শক্ত নয় যাতে চড়া যায় অথবা বাট এমন নয় যা দোহন করা যায়।

1- قَالَ (عليه‏السلام) : كُنْ فِي الْفِتْنَةِ كَابْنِ اللَّبُونِ لَا ظَهْرٌ فَيُرْكَبَ وَ لَا ضَرْعٌ فَيُحْلَبَ

২। যে লোভে অভ্যস্ত হয়ে পড়ে সে নিজেকে অবমূল্যায়ন করে, যে নিজের অভাব অনটনের কথা প্রকাশ করে সে নিজকে অবমানিত করে, আর যার জিহবা আত্মাকে পরাভূত করে তার আত্মা দুষিত হয়ে পড়ে।

2- وَ قَالَ (عليه‏السلام) : أَزْرَى بِنَفْسِهِ مَنِ اسْتَشْعَرَ الطَّمَعَ.وَ رَضِيَ بِالذُّلِّ مَنْ كَشَفَ عَنْ ضُرِّهِ. وَ هَانَتْ عَلَيْهِ نَفْسُهُ مَنْ أَمَّرَ عَلَيْهَا لِسَانَهُ.

৩। কৃপণতা লজ্জা এবং কাপুরুষতা ত্রুটি। আর দারিদ্র একজন বুদ্ধিমান লোককেও তার নিজের বেলায় যুক্তি প্রদর্শন করতে ব্যর্থ করে এবং দুঃস্থ ব্যক্তি তার নিজের শহরেও আগন্তুকের মত।

3- وَ قَالَ (عليه‏السلام) : الْبُخْلُ عَارٌ وَ الْجُبْنُ مَنْقَصَةٌ وَ الْفَقْرُ يُخْرِسُ الْفَطِنَ عَنْ حُجَّتِهِ وَ الْمُقِلُّ غَرِيبٌ فِي بَلْدَتِهِ

৪। অযোগ্যতা বজ্রাঘাত, ধৈর্য সাহসিকতা, মিতাচার ধন-সম্পদ, আত্মপ্রত্যয় বর্ম এবং সর্বোত্তম সাথি হলো আল্লাহর ইচ্ছায় সমর্পিত হওয়া।

4- وَ قَالَ (عليه‏السلام) : الْعَجْزُ آفَةٌ وَ الصَّبْرُ شَجَاعَةٌ وَ الزُّهْدُ ثَرْوَةٌ وَ الْوَرَعُ جُنَّةٌ وَ نِعْمَ الْقَرِينُ الرِّضَى

৫। জ্ঞান শ্রদ্ধাস্পদ সম্পত্তি, সদাচারণ নতুন পোষাক এবং চিন্তা স্বচ্ছ আয়না।

5- وَ قَالَ (عليه‏السلام):الْعِلْمُ وِرَاثَةٌ كَرِيمَةٌ وَ الْآدَابُ حُلَلٌ مُجَدَّدَةٌ وَ الْفِكْرُ مِرْآةٌ صَافِيَةٌ

৬। জ্ঞানীদের বক্ষ তার গুপ্ত বিষয়ের সিন্দুক, প্রফুল্লতা বন্ধুত্বের বন্ধন এবং কার্যকর ধৈর্য সকল দোষত্রুটির কবর।

6- وَ قَالَ (عليه‏السلام): صَدْرُ الْعَاقِلِ صُنْدُوقُ سِرِّهِ وَ الْبَشَاشَةُ حِبَالَةُ الْمَوَدَّةِ وَ الِاحْتِمَالُ قَبْرُ الْعُيُوبِ‏ئ {وَ رُوِيَ أَنَّهُ قَالَ فِي الْعِبَارَةِ عَنْ هَذَا الْمَعْنَى أَيْضاً الْمَسْأَلَةُ خِبَاءُ الْعُيُوبِ وَ مَنْ رَضِيَ عَنْ نَفْسِهِ كَثُرَ السَّاخِطُ عَلَيْهِ}.

৭। বদান্যতা কার্যকর চিকিৎসা, এ জীবনের আমল পরকালে চোখের সামনে দেখতে পাবে।

7- وَ الصَّدَقَةُ دَوَاءٌ مُنْجِحٌ وَ أَعْمَالُ الْعِبَادِ فِي عَاجِلِهِمْ نُصْبُ أَعْيُنِهِمْ فِي آجَالِهِمْ

৮। মানুষ কী আশ্চর্যজনক যে, সে চর্বি আর এক টুরকা মাংস দ্বারা কথা বলে, একটা হাড় দ্বারা শুনে এবং একটা ছিদ্র দ্বারা শ্বাস-প্রশ্বাস নেয়।

8- وَ قَالَ (عليه‏السلام) :اعْجَبُوا لِهَذَا الْإِنْسَانِ يَنْظُرُ بِشَحْمٍ وَ يَتَكَلَّمُ بِلَحْمٍ وَ يَسْمَعُ بِعَظْمٍ وَ يَتَنَفَّسُ مِنْ خَرْمٍ.

৯। কারো ভাগ্য সুপ্রসন্ন হলে পৃথিবী যখন অনুকূলে আসে তখন অন্যের ভালো কাজের সুকীর্তি তার নামে হয়, আর পৃথিবী প্রতিকূলে গেলে নিজের ভালো কাজের সুনাম থেকে সে বঞ্চিত হয়।

9- وَ قَالَ (عليه‏السلام)إِذَا أَقْبَلَتِ الدُّنْيَا عَلَى أَحَدٍ أَعَارَتْهُ مَحَاسِنَ غَيْرِهِ وَ إِذَا أَدْبَرَتْ عَنْهُ سَلَبَتْهُ مَحَاسِنَ نَفْسِهِ.

১০। মানুষের সাথে দেখা হলে এমন আচরণ করবে যেন তোমার মৃত্যুতে তারা কাঁদে এবং তুমি বেঁচে থাকলে তারা তোমার দীর্ঘায়ূ কামনা করে।

10- وَ قَالَ (عليه‏السلام):خَالِطُوا النَّاسَ مُخَالَطَةً إِنْ مِتُّمْ مَعَهَا بَكَوْا عَلَيْكُمْ وَ إِنْ عِشْتُمْ حَنُّوا إِلَيْكُمْ.

১১। প্রতিপক্ষের ওপর জয়ী হলে তাকে ক্ষমা করো।

11- وَ قَالَ (عليه‏السلام) : إِذَا قَدَرْتَ عَلَى عَدُوِّكَ فَاجْعَلِ الْعَفْوَ عَنْهُ شُكْراً لِلْقُدْرَةِ عَلَيْهِ

我要pipe character爆炸(正如你所见,在所有孟加拉语句子的末尾都有一个|叫什么管道)

并且当我复制该管道 (|) 以在爆炸中使用它时,我不知道为什么 php 不知道它,也不要爆炸任何东西!

  $text=file_get_contents("1-40.txt");
  $explode=explode("।",$text);
  print_r($explode);

解决方法是什么?

*注意:我不懂孟加拉语和阿拉伯语

也许检查您的文件编码或环境设置。

我刚刚使用了一个 UTF-8 文件,复制了您的文本并且它有效 "fine"。

看看这里。

http://3v4l.org/2doAg

var_dump( explode('।', $text) );

用作分隔符的字符命名为devanagari danda 0x964 / । - you can find it with some online unicode lookup tools like this one

这不是 PHP 的错,因为它在 this demo 中运行良好。

我会说您的 .txt 文件存在编码问题。也许你只想 "explode" 代替数字,使用 preg_split() :

demo

preg_split("/\d\-/", $text);

我相信字符 用于格式化孟加拉语中的编号列表(如英语格式中的点,如 1. 2. 3. 等)并且至少在示例中提供了所有段落的一部分使用换行符分隔句子的孟加拉语和阿拉伯语版本。因此,要分隔段落,您可以使用以下内容:

$arr = array_filter(explode(PHP_EOL, $txt));
var_dump($arr);