کمپیوٹرزپروگرامنگ

باقاعدگی سے اظہار (پی ایچ پی). پی ایچ پی: باقاعدگی سے اظہار، مثالیں

کتنا بڑا اور معلومات کے متنوع دنیا، صرف کے طور پر فوری طور پر، یہ وسعت اور تیار کرتا ہے. کوئی بھی فیصلہ - تحریک کے مجموعی کے عمل میں صرف ایک نقطہ. علم اور تجربہ سے یہ ممکن مقاصد کو حاصل کرنے کے عمل کو سمجھنے کے لئے بناتے ہیں، لیکن کبھی نہیں - نہیں اس کی کامیابیوں کا نتیجہ. یہ مشکوک ہم نتیجہ پر مستقبل قریب میں بات کر سکتے ہیں ہے، لیکن یہ اس کے لئے کوشش کرنے کے عمل میں ایک اہم اور objectively ضروری عمل ہے کہ اہم ہے.

"خواہش اور / یا بہت پیسہ" اس کے قابل ایک الگورتھم تخلیق نہیں ہے، اور کورس کے "آزاد" آدمی کرتا ہے، خاص طور پر جب اس نے وہ کیا کر رہا ہے کے بارے میں نہیں سوچتا. کسی بھی صورت میں معلومات مسئلہ یہ ہے کہ وہ سب سفید پھول ہیں ضروری نہیں کہ کم از کم ایک اندھے جگہ ہے، لیکن اس کے لئے، عام طور پر فوری طور پر، دوسروں کو صاف داغ دیکھ سکتے ہیں، اور نہیں.

انٹرنیٹ ٹیکنالوجی میں معلومات تک رسائی کو آسان کر دیا ہے، لیکن سوال یہ ہے - مطلوبہ ہونے پر ڈال کرنے کے لئے کس طرح - سادہ بنایا نہیں، اور کام کے نئے "حجم" حاصل کر لیا. اور اگرچہ PHP باقاعدہ اظہار کے فرق کو واضح طور پر ختم نہیں کیا جاتا ہے، وہ مستقبل کے حوالے سے ایک اہم قدم ہے.

سادہ افعال + الگورتھم = پیٹرن

باقاعدہ اظہار کی پیشکش، PHP الگورتھم نمایاں طور پر مواد کو کم کر دیتا ہے، لیکن ہمیشہ کی طرح تلاش کے افعال / تبدیلی اور پروسیسنگ یلگوردمز ان کی اہمیت کو کھو نہیں ملا. نئے خیالات معلومات انقلاب مہمیز دیتی نہیں کرتے. سب سے زیادہ کی توقع کی جا سکتی ہے کہ - کمپیکٹ کوڈ اور ڈویلپر کی درست طریقے سے ایک تلاش کے سوال وضع کرنے کی صلاحیت میں اضافہ.

آپ جانتے ہیں اور پی ایچ پی کی باقاعدہ اظہار پر درخواست دینی چاہیے. مثال کے طور پر قائل اور مؤثر. اگرچہ حقیقت میں آسان تلاش افعال، حالات، loops کے، اور دیگر آپریٹرز کی ایک سیٹ کی طرف سے تبدیل، طریقہ کار کی ایک قسم ہے - لیکن یہ ایک نیا سرچ انجن کی آمد کے ساتھ، کشش ثقل کے مرکز پیٹرن منتقل کردیا ہے کہ رپورٹ کو دینا چاہئے.

ہے:

  • معیار اور جدید آلے - یہ اچھا ہے؛
  • دیکھتے ہیں اور ان کے ساتھیوں کے تجربے کو استعمال کیا بات ہے؛
  • کامیابی کی ضمانت - حقیقت اور مجازی خیال کو ملا.

یہ کیسے اسے حل کرنے کے لئے، مسئلہ کو سمجھنے کے لئے ضروری تھا کے علم کے حصول، یہ مخصوص نتیجہ کے مقابلے میں کثرت سے زیادہ اہم ہے.

پی ایچ پی میں باقاعدہ اظہار کی زبان نحو میں افعال میں سے ایک بڑی تعداد ہے اور انٹرنیٹ پر مفید مثالوں کی ایک بہت کی طرف سے نمائندگی کر رہے ہیں. کیونکہ نحو کی مخصوص کی درخواست کے اختیارات صرف ڈویلپر کی کلپنا کی طرف سے محدود رہے ہیں، لیکن اس بات کو ذہن میں رکھیں sleuet ٹیمپلیٹس میں سے سب کام کرے گی. باقاعدہ اظہار کے پی ایچ پی کی توثیق کا استعمال کرتے ہوئے ضروری ہے.

سادہ تلاش کردار (سٹرنگ)

علامت - یہ ہمیشہ ایک واحد بائٹ نہیں ہے، اور ایک چپ کے طور پر، ایک علامت کو اکثر ہے، اس کے علاوہ درست معنی ہے. انکوڈنگ متعین کرتا مختلف طریقے کوڈ میں دستیاب حروف. علامت کئی اختیارات ہیں کر سکتے ہیں: "$" = "USD" = "USD"، ... - کہ کہیں کسی چیز کا صحیح معنی ہے، لیکن ضروری نہیں کہ قریب نہیں، کرنسی کی وجہ سے. تاہم، صحیح معنی متغیر PHP، ہمیشہ کردار "$" کے ساتھ شروع ہوتا ہے جس میں جھوٹ بول سکتے ہیں، لیکن "USD" اور "USD" سے شروع نہیں کر سکتے.

پروگرام کی علامت کے تناظر میں ایک تقریب کا نام (سٹرنگ) ہو سکتے ہیں: پہچاننے اور پورا - ساخت، افعال، پی ایچ پی کی باقاعدہ اظہار کے فیصلے کرنے کے لئے براہ راست استعمال کیا جاتا ہے جب یہ متحرک چیز پر مبنی پروگرامنگ سے ہے. ملا علامت "موڑ"، خود کی جگہ ہے جس میں یہ پایا جاتا ہے میں کیا کرنا ہے کا تعین کرتا ہے، اور جس طرح سے یہ ہے، "انہوں سمجھے" ضروری طرف، کہ ہے.

نہ اس طرح ایک سادہ ورزش، اور مزید معلومات کے واضح بہتر - ایک کردار / لائن کے لئے تلاش کریں. یہ خوراک کی قیمتوں میں دس بہترین مل مزیدار کی ترکیبیں سالگرہ کا کیک انتخاب کرتے ہیں، یا جھوٹے چھت کے لئے ٹھیکیدار کا تعین کرنے کے لئے ضروری ہمیشہ نہیں ہے.

ایک سو سائٹس - اکثر یہ بہتر کرنے کے لئے آسان الگورتھم سادہ ریاضی معلومات نہیں ہیں یا مشکل حالات میں، جب مطلوبہ کردار ایک ڈیٹا بیس سے منتخب کرنے کے لئے، اور لائن میں ہے جس میں اسے تلاش کرنے کے لئے ضروری ہے ضروری ہے. سائٹس کی تلاش کے وقت بدنام سینکڑوں - قیمت ایک وقت سے نمونہ ڈیٹا بیس کردار، اور دیکھ بھال کے لئے ہے جہاں کی قیمت منتخب کرنے کے لئے برابر ہے.

لون علامت - یہ ایک جملہ نہیں ہے، اور چند جملوں نہیں، وہ کہیں بھی ہو اور مطلوبہ طور پر کے طور پر چھوٹے ہو سکتا ہے. کس طرح خواہش ظاہر کی ہے کیا پایا گیا تھا اس بات کا تعین کرنے کے لئے؟

مثال: قیمتوں کے لئے تلاش کریں

ایک چھوٹی سی - صرف متن "$" علامت کو تلاش کریں. چیک کریں کہ یہ ایک بڑی تعداد کا سامنا ہے، یہ ہمیشہ کافی نہیں ہے. آپ علامت "$" سے پہلے ایک نقطہ یا نمبر فراہم کرتے ہیں تو ایک بات کی ضمانت کی قیمتوں جس میں مانیٹری علامتوں آگے ہیں اکاؤنٹ میں لیا جانا نہیں ہو گی. بھی قیمت، عام طور پر کرنسی کی وضاحت نہیں کی ہے جس میں وہاں لپ کر رہے ہیں، لیکن صفحے پر یہ واضح ہدایات پر ہے.

عام طور پر، ہمیشہ کی طرح انداز میں مسئلے کا حل تسلیم الگورتھم اور وقت خرچ سے آگے فلانا. دریں اثنا، ایک باقاعدہ اظہار کا استعمال کرتے ہوئے پی ایچ پی کی تعداد کوئی مسئلہ نہیں پائیں گے.

$ CContents = preg_match_all ( "/ [0-9] ([\ $] | USD | Y \ £ \ | UE) {1} / مجھے."؛

"ای میل دیکھو - 2USD؛
ایک"؛
؛ - "؛ ایک
2u.e ای میل تلاش کریں."
"کام ای میل - ue2؛
ایک"؛
"ای میل چیک - $ 13"، $ aResult)؛
. '؛ '. implode کر ( '،'، $ aResult [0]). 'ایک
'.

کہیں گے "2؛ 2USD، 2u.e."، لیکن لائن میں کچھ نہیں ملا: "چیک ای میل - $ 13."

سامنے یا کردار کے پیچھے پیٹرن کی موجودگی کے لئے فراہم کرنا ہے، آپ زیادہ تر مقدمات میں فوری طور پر کامیابی حاصل کر سکتے ہیں.

$ CContents = preg_match_all ( "/ ([0-9] ([\ $] | USD | Y \ £ \ |. UE) {1}) | (([$] | USD | Y \ £ \. | UE) {1} [0-9]) / میں "؛
"ای میل دیکھو - 2USD؛
ایک"؛
؛ - "؛ ایک
2u.e ای میل تلاش کریں."
"کام ای میل - ue2؛
ایک"؛
"ای میل چیک - $ 13"، $ aResult)؛
. '؛ '. implode کر ( '،'، $ aResult [0]). 'ایک
'.

نتیجہ: "4؛ 2USD، 2u.e.، ue2، $ 13."

غیر ارادی منطق بارے

باقاعدہ اظہار PHP پیشکش، کے ساتھ ساتھ دیگر ٹولز، لیکن یہ ضروری نہیں ہے اس کے قوانین کے مطابق ان کا اطلاق یا خفی نحو راستہ فراہم کیا دوسرے کام کرتا ہے استعمال کرنے کے لئے.

صف کی طرف رجوع کرنے کی ضرورت تلاش، اور جگہ ہم تلاش کرتے ہیں جہاں، پہلے معیار کے مطابق اجزاء میں ٹوٹ کے آغاز سے پہلے ممکن. بس کے ایک جوڑے کے پھٹنے () اور implode کر () اکثر آسان بنا دیتا ہے اور فیصلے کو رفتار.

مثال کے طور پر ابتدائی کام کے نتیجہ میں کتنے آلو ہر گاؤں اکٹھی پر ضلع میں ڈور (ڈیٹا) کی ایک صف تشکیل دی: نامعلوم ImyaDerevnya اور حجم کو جمع کیا، اور ملک ڈور کی ایک صف میں کئی کمپنیوں چلتا ہے تو ذریعے ImyaDerevnya.ImyaPredpriyatie اور قدر ہے "؛ " اور اسی طرح تمام کاروباری اداروں پر. اس صورت میں جمع ممکن نہیں ہوگا کل رقم کا حساب لگائیں، لیکن آپ impode کرتے ہیں تو ( "؛"، $ aResult)، ایک طویل قطار، جوڑی، جس میں ہو جائے گا - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - سائز کا ایک مجموعہ - کے ذریعے منتقل کیا جائے گا "؛". پر ایک ریورس کرو نتیجے پھٹنے ( "؛"، $ aResult) - تمام کی ایک صف کو جمع کیا اور اسے کس طرح جمع کیا جاتا ہے، اور پھر تمام غیر عددی حروف سے لائنوں کو ہٹا کر، ہم صرف اعداد ہیں جو، جس میں سے رقم جمع کی کل حجم ہے.

اس مثال میں، پی ایچ پی میں باقاعدہ اظہار وہ آسان اور سستی اقتباس مطلوبہ عددی اقدار ہیں، بہت زیادہ دیکھنے کے لئے نہیں کی اجازت. تیزی سے اور مؤثر، کوئی بات نہیں ہے یہ دیہات اور کاروباروں کے نام ہو سکتا ہے کتنی دیر تک. یہ حل مثالی نہیں ہے، لیکن یہ ہمیشہ کی پیروی نہیں کرتے کہ قوانین ہونا چاہئے ظاہر کرتا ہے. یہ ایک غیر معمولی طریقے سے مطلوبہ حاصل کرنے کے لئے اکثر ممکن ہے.

تکنیکی طرف سے Abstracting، انکوڈنگ

الگورتھم کی نحو نہیں کہتے کہ کس طرح یہ حقیقت میں نظر آتا ہے. تاہم، صفحے کے ایک ہی انکوڈنگ فراہم کرنے، اور قطار سکرپٹ مسئلہ میں فیصلہ کر سکتے ہیں (جس میں تصاویر میں کوشش کی ہے جو) اس کے تکنیکی پہلوؤں ہے.

ایک صرف کے لئے نظر آتے ہیں کیا پتہ نہیں چاہیے، لیکن جہاں ایسا کرنے کی، جب، تبدیل کرنے کے لئے کس کو کتنا اور کس طرح. باضابطہ طور پر اس کی اپنی ایک مکمل مکمل خصوصیات کے طریقہ کار کے طور پر پھانسی باقاعدہ اظہار PHP، لیکن کئی وجوہات کے لئے، بہت سے زبانوں میں اس کے ہم منصبوں کی وصولی مختلف. ایک عمومی اصول کے طور پر، آپ کو ایک مخصوص کام کے لئے ایک خاص آلے کے ماحول میں ایک خاص پیٹرن منتقل کرنے سے پہلے، یہ ضروری ہے، اعلی معیار کی موافقت باہر لے جانے کے ذریعہ ڈیٹا کے لئے تمام ممکن اختیارات کے لئے چیک کرنے کے لئے ہے.

آپ پی ایچ پی میں ترقی پذیر آپ کے اپنے تجربے استعمال کر رہے ہوں، باقاعدہ اظہار، مثالیں، ٹیمپلیٹس اور ڈیزائن محتاط چیکنگ کی ضرورت ہے. متحرک زبان فعالیت، نحو اور رن ٹائم تبدیل کرنے.

ایک ٹیمپلیٹ کی ساخت اور مواد

کیا ماضی میں سرچ افعال، کا ایک مجموعہ کی شکل میں لکھا گیا کونداٹاونالس، باقاعدہ اظہار پیٹرن - متبادل کارروائیوں، ڈالیں، خارج، بعض قوانین کے مطابق حروف کی ایک تار ہے. اصل میں، ایک قابل ذکر رقم ایک خاص طریقے میں انکوڈنگ اور مخصوص قوانین کی طرف سے پھانسی ہے.

یہ کسی بھی ٹھیک کرنا زبان آپریٹر کرنا ناممکن ہے بس کے طور پر، آپ کو ایک باقاعدہ اظہار پیٹرن ڈیبگ نہیں کر سکتے، اس عمل کو صرف مقابلہ کر سکتے ہیں. ایک عمومی اصول کے ورژن کو اپنایا ہے: کام - کام نہیں کرتا. نحو، بہت آسان ہے اس کے خیال اگرچہ، خاص طور پر شروع میں، بہت مشکل ہے.

ایک سادہ اظہار کی ایک مثال

ایک سادہ اوتار میں، سانچے سٹرنگ سے میل کھاتا ہے:

$ CContents = preg_match ( "/ ASDF / میں"، "ASDF"، $ aResult). '؛ '. implode کر ( '،'، $ aResult).

سب سے پہلے میں ایک کے ملاپ کے سانچے سے ملاقات کی تقریب اس آپریشن مکمل، کے بعد سے؛ "ASDF 1" نتیجہ ہو جائے گا. ہم لائن پر نظر ڈالیں تو لکیر "zzzasdfvvv" میں "aaaasdf" نتیجہ ایک ہی ہو جائے گا. آپ سب سے پہلے اور / یا آخری کردار کی وضاحت تو، نتیجہ واضح ہو جائے گا:

$ CContents = preg_match ( "/ ^ ASDF / میں"، "ASDF"، $ aResult). '؛ '. implode کر ( '،'، $ aResult). '
ایک'؛
$ CContents. = Preg_match ( "/ ASDF $ /"، "ASDF"، $ aResult). '؛ '. implode کر ( '،'، $ aResult). 'ایک
'.

نتیجہ ہو جائے گا: 1؛ asdf1؛ ASDF.

شروع اور ختم ہونے والے پیٹرن کو جہاں علامات "*" اور "$" اشارہ کرتا ہے. preg_match تقریب نتیجہ - میچز کی تعداد، یہ ایک غلطی کا پتہ چلا ہے، تو ہو سکتا ہے 0، 1، یا غلط. تیسرے آپشن - ایک صف - صرف پایا عنصر رکھ دیا. preg_match_all تقریب کا استعمال کرتے ہوئے کی صورت میں () تلاش کے آخر لائن کے لئے جاری.

$ CContents = preg_match ( "/ ASDF / میں"، "asdf123asdf456asdf789"، $ aResult). '؛ '. implode کر ( '،'، $ aResult). '
ایک'؛
$ CContents. = Preg_match_all ( "/ ASDF / میں"، "asdf123asdf456asdf789"، $ aResult). '؛ '. implode کر ( '،'، $ aResult [0]). 'ایک
'.

نتیجہ:

1؛ ASDF
3؛ ASDF، ASDF، ASDF.

آپ کو خصوصی ہدایات کا استعمال نہیں کرتے ہیں تو، ہر کردار سے قطع نظر کی لائن کوڈنگ اور سانچے کوڈنگ کے، خود کو اور اس کی جگہ کی وضاحت کرتا ہے. پروگرامر کو یقینی بنانا چاہیے کہ ان عناصر کی انکوڈنگ کو ایک دوسرے کے اور انکوڈنگ صفحے کے سلسلے میں درست تھے.

باقاعدہ اظہار کے ساتھ کام کرنے کے لئے پی ایچ پی افعال

پی ایچ پی کے لئے باقاعدہ اظہار ایک خاص طریقے میں ریکارڈ ایک کردار سٹرنگ نمائندگی کرتے ہیں. عام طور پر، دیگر پروگرامنگ زبانوں کے ساتھ قیاس، وہ علامات "/" ... "/" اور واوین میں رکھا، آپ سنگل یا ڈبل الگورتھم کی بنیاد پر استعمال کر سکتے ہیں میں لکھی ہیں.

مرکزی تقریب PHP Preg کا میچ باقاعدہ اظہار ایک لاحقہ _all ساتھ اسکی ایک مختلف تمام میچز پائے دونوں پیٹرن میچ استعمال کرتا ہے اور سب سے پہلے مقام پر یہ بند ہو جاتا، اور اس کی صف نتائج. فنکشن Preg کا کی جگہ لے لے ہر ایک سانچے سے ملنے کی جگہ لے لیتا ہے، یہ تلاش کے ڈیزائن کی اجازت دے، arrays کے ساتھ کام کرتے ہیں اور اختیارات کی ایک قسم کی تبدیلی انجام دے سکتے ہیں.

باقاعدہ اظہار کے ساتھ کام کرنے کے لئے دلچسپ اختیارات کا کوئی متبادل متن لیتا ہے کہ preg_replace_callback تقریب، اور تقریب، اس طرح ایک متبادل باہر لے جائے گا جس کا نام استعمال کرتے ہوئے تیار کیا جا سکتا. عملی کی قیمت کے علاوہ میں آپ میکانزم گزشتہ کی ترقی اور ٹھیک کرنا ایک اہم کردار ادا کرتا ہے، پیٹرن چیک لاگو کر سکتے ہیں.

باقاعدہ اظہار کا دائرہ کار

ہایپر ٹیکسٹ زبانوں زیادہ حد تک معلومات رسمی رہے ہیں چونکہ وہ شروع ہونے والے مواد ہے. سانچوں اور ڈیزائن مؤثر طریقے سے ڈیٹا کی بڑی مقدار پر عملدرآمد کرنے کی اجازت دیتے ہیں کی ایک بڑی تعداد تیار کی. اس کام کا ایک اہم حصہ مختلف مواد کے انتظام کے نظام (CMS) میں تعمیر میکانزم کیا جاتا ہے.

حیرت کی بات نہیں، بہت سے CMS عمارت سائٹس، اور (اپ ڈیٹ) سافٹ ویئر کمپنیوں کے ہمراہ جا رہا ہے، وہ اس پر ضروری اپنے طور پر پیٹرن کی ترقی باہر لے جانے کے لئے نہیں بنا تھا کے لئے اصل معیار بن. تاہم، اس طرح کے نظام کے باہر باقاعدہ اظہار کے ساتھ تجربہ بہت مفید ہے ہے.

باقاعدہ اظہار اور حقیقی معلومات

پی ایچ پی کی لائبریریوں میں باقاعدہ اظہار کی درخواست کی ایک اہم علاقے آمد PHPOffice تشکیل دی. دستاویزات، سپریڈ شیٹ کے ساتھ کام، اور ہمیشہ اہم دیکھا گیا ہے اور OOXML معیاری اصل دستاویزات کو ختم کرنے کی نہ صرف، بلکہ ان کے پروگرام کی صورت گری کرنا ممکن ہے.

خاص طور پر ہایپر ٹیکسٹ اور پی ایچ پی زبانوں کی ترقی کے لئے شکریہ، مثلا، دستاویزات "معیاری فارم" کی "پیداوار" کو خود کار کرنے کے لئے ایک حقیقی موقع ہے، ادائیگی، رپورٹیں، کاروباری منصوبہ بندی، اور دیگر معلومات اشیاء کے لئے رسیدیں، ساخت اور مندرجات اصل تیاری اور آٹومیشن پر amenable ہیں.

باقاعدہ اظہار کی زبان OOXML ترقی کے عمل کو بیان کرنے کے لیے درخواست کے سلسلے میں سب سے پہلے جگہ میں مارک اپ زبانوں HTML کے ساتھ روایتی ورکنگ اور CSS سے بالکل مختلف ہے. اصل دستاویز، مارکنگ کے سوا اور اصل مواد کے علاوہ میں تفصیلات کی ایک بہت ہے. مثال کے طور پر پروگرام کی طرف سے خود کار طریقے سے پیدا کیا گیا ہے کہ ایک دستاویز، ایک مضبوط اور درست مواد پڑے گا. دستاویز تشکیل دی یا علاج شخص، ایک مواد پڑے گا، ٹیگ کی ایک بہسنکھیا کے اوپر پینٹ کیا گیا. دستاویز سے کوئی کام حقیقت یہ ہے کہ اس کا semantics کے ایک ہو، لیکن مختلف ڈیزائنوں میں مختلف مقدار میں رنگا سکتا ہے کہ کی طرف جاتا ہے.

قدرتی معلومات اور صورت حال

ہمیشہ اس کے نتیجے کے طور پر، معلومات نکالی اور ہے جس مسئلہ کے حل میں دلچسپی ایک شخص، ایک ہی معلومات دی جائے گی. ایک دستاویز کی شکل میں مسئلہ کا بیان پیش کرتے ہوئے ایک شخص کو ماہرین کی تصریح میں ہے جو (ترمیم، الفاظ واضح، حذف، اس میں ترمیم) نہ صرف ایک دستاویز کے کئی ایڈیشن کی طرف جاتا ہے، بلکہ مختلف مواد کے ساتھ اس ورژن کے لئے ایک مخصوص semantics کے ہو جاتا ہے.

خاص طور پر، کام کرتے ہیں کی طرف سے مقرر ایڈیٹنگ کے بعد اس طرح نظر آئے گا "مربع uranenie حل": "چکوری مساوات کو حل کرنے کے لئے" سب سے پہلے میں پہلی غلطی کو درست کیا گیا ہے تو، اور پھر دوسری، پھر OOXML انداز میں قدرتی معلومات کی طرح نظر ہو سکتا ہے: "[حل] [] [مربع] [E] [] [چیرس] [B] [nenie]"، لیکن یہ ایسا نہیں کرتا اس بات کی ضمانت یہ ہے کہ کام ٹیگز OOXML (بریکٹ بریکٹ ٹیگز تقلید) میں دکھایا جائے گا.

معلومات ہر کام میں ترمیم کے عمل کے بعد آسانی سے ہو سکتا ایک دوسرے کے ساتھ ڈال دیا ہے، لیکن اس کا طریقہ کار مختلف یلگوردمز کی طرف سے کارکردگی کا مظاہرہ کیا جائے گا، ہر وقت کے لیے. باقاعدہ اظہار، معلومات مسائل کی تیاری کے آلے کے ایک طرح کے طور پر قدرتی معلومات تک ہایپر ٹیکسٹ کا رسمی ڈھانچوں سے راستے چلنے، اثر میں، بن گئے ہیں.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ur.birmiss.com. Theme powered by WordPress.