فاصل

تصوير أسلوبي للقيم داخل ملف نصي للقيم المنفصلة بفاصلة (CSV). تُستخدم الفواصل (الموضحة باللون الأحمر) كفاصلات للحقول.

الفاصل هو عبارة عن سلسلة من حرف واحد أو أكثر لتحديد الحدود بين مناطق منفصلة ومستقلة في نص عادي أو تعبيرات رياضية أو تدفقات بيانات أخرى . [1] [2] ومن الأمثلة على الفاصل حرف الفاصلة ، والذي يعمل كفاصل للحقل في سلسلة من القيم المنفصلة بفاصلة . ومن الأمثلة الأخرى على الفاصل الفجوة الزمنية المستخدمة لفصل الحروف والكلمات في نقل شفرة مورس . [ بحاجة لمصدر ]

في الرياضيات ، تُستخدم الفواصل عادةً لتحديد نطاق العملية ، ويمكن أن تظهر كرموز معزولة (على سبيل المثال، النقطتان في " ") وكزوج من الرموز ذات المظهر المتعاكس (على سبيل المثال، الأقواس الزاوية في ).

تمثل الفواصل إحدى الوسائل المتنوعة لتحديد الحدود في مجرى البيانات . على سبيل المثال، يعد التدوين التصريحي طريقة بديلة (بدون استخدام الفواصل) تستخدم حقل طول في بداية مجرى البيانات لتحديد عدد الأحرف التي يحتوي عليها مجرى البيانات. [3]

ملخص

يمكن وصف الفواصل بأنها فواصل للحقول والسجلات، أو فواصل بين قوسين.

فواصل الحقول والسجلات

تفصل فواصل الحقول حقول البيانات. تفصل فواصل السجلات مجموعات الحقول. [4]

على سبيل المثال، يستخدم تنسيق CSV فاصلة كفاصل بين الحقول ، ومؤشر نهاية السطر كفاصل بين السجلات :

الاسم الأول، الاسم الأخير، العمر، الراتب
نانسي دافوليو، 33، 30000 دولار
إيرين، بوراكوفا، 28، 25250 دولارًا
توني، رافائيل، 35، 28700 دولار

يحدد هذا جدول قاعدة بيانات ملف مسطح بسيط باستخدام تنسيق ملف CSV.

فواصل الأقواس

تحدد فواصل الأقواس، والتي تسمى أيضًا فواصل الكتلة، أو فواصل المنطقة، أو الفواصل المتوازنة، كلًا من بداية ونهاية منطقة من النص. [5] [6]

تشمل الأمثلة الشائعة لفاصلات الأقواس ما يلي: [7]

الفواصل وصف
( ) الأقواس . يُستشهد بقواعد لغة برمجة Lisp باعتبارها قابلة للتعرف عليها في المقام الأول من خلال استخدامها للأقواس. [8]
{ } الأقواس (وتسمى أيضًا الأقواس المجعدة [9] ).
[ ] الأقواس (تستخدم عادة للإشارة إلى الرمز السفلي).
< > أقواس الزاوية . [10]
" " تُستخدم عادةً للإشارة إلى الأحرف النصية . [11]
' ' تُستخدم عادةً للإشارة إلى الأحرف الحرفية . [11]
<? ?> تستخدم للإشارة إلى تعليمات معالجة XML . [12]
/* */ تُستخدم للإشارة إلى التعليقات في بعض لغات البرمجة. [13]
<% %> تُستخدم في بعض قوالب الويب لتحديد حدود اللغة. [14]

الاتفاقيات

تاريخيًا، استخدمت منصات الحوسبة فواصل معينة حسب الاتفاقية. [15] [16] توضح الجداول التالية بعض الأمثلة للمقارنة.

لغات البرمجة ( انظر أيضًا ، مقارنة لغات البرمجة (النحو) ).

سلسلة حرفية نهاية البيان
باسكال علامة اقتباس مفردة الفاصلة المنقوطة
بايثون علامة اقتباس مزدوجة، علامة اقتباس مفردة نهاية السطر (EOL)

فواصل الحقول والسجلات ( انظر أيضًا ، ASCII ، حرف التحكم ).

نهاية الميدان نهاية السجل نهاية الملف
أنظمة شبيهة بنظام يونكس بما في ذلك macOS و AmigaOS فاتورة غير مدفوعة LF لا أحد
ويندوز ، MS-DOS ، OS/2 ، CP/M فاتورة غير مدفوعة سي آر إل إف لا شيء (باستثناء CP/M)، Control-Z [17]
نظام التشغيل Mac الكلاسيكي ، Apple DOS ، ProDOS ، GS/OS فاتورة غير مدفوعة اللغة الإنجليزية: CR لا أحد
أسكي/يونيكود فاصل الوحدة
الموضع 31 (U+001F)
فاصل التسجيل
الموضع 30 (U+001E)
فاصل الملفات
الموضع 28 (U+001C)

تصادم فاصل

تصادم الفاصلات هو مشكلة تحدث عندما يقوم المؤلف أو المبرمج بإدخال فواصل في النص دون أن يقصد فعليًا تفسيرها على أنها حدود بين مناطق منفصلة. [4] [18] في حالة XML، على سبيل المثال، يمكن أن يحدث هذا كلما حاول المؤلف تحديد حرف قوس الزاوية .

في أغلب أنواع الملفات يوجد فاصل للحقل وفاصل للسجل، وكلاهما عرضة للتصادم. في حالة ملفات القيم المنفصلة بفواصل ، على سبيل المثال، يمكن أن يحدث تصادم للحقل كلما حاول المؤلف تضمين فاصلة كجزء من قيمة الحقل (على سبيل المثال، الراتب = "$30,000")، كما يحدث تصادم لفاصل السجل كلما احتوى الحقل على أسطر متعددة. يحدث تصادم لفاصل السجل والحقل بشكل متكرر في ملفات النصوص.

في بعض السياقات، قد يسعى مستخدم ضار أو مهاجم إلى استغلال هذه المشكلة عمدًا. وبالتالي، يمكن أن يكون تصادم الفاصل مصدرًا لثغرات أمنية واستغلالات . يمكن للمستخدمين الضارين الاستفادة من تصادم الفاصل في لغات مثل SQL و HTML لنشر هجمات معروفة مثل حقن SQL وبرمجة النصوص عبر المواقع على التوالي.

الحلول

نظرًا لأن تصادم الفاصلات مشكلة شائعة جدًا، فقد تم اختراع طرق مختلفة لتجنبها. قد يحاول بعض المؤلفين تجنب المشكلة عن طريق اختيار حرف فاصل (أو سلسلة من الأحرف) من غير المرجح أن يظهر في مجرى البيانات نفسه. قد يكون هذا النهج المخصص مناسبًا، ولكنه يعتمد بالضرورة على تخمين صحيح لما سيظهر في مجرى البيانات، ولا يوفر أي أمان ضد التصادمات الضارة. وبالتالي يتم تطبيق اتفاقيات أخرى أكثر رسمية أيضًا.

نص محدد بـ ASCII

تم تصميم مجموعات أحرف ASCII وUnicode لحل هذه المشكلة من خلال توفير أحرف غير قابلة للطباعة يمكن استخدامها كفاصلات. تتراوح هذه الأحرف من ASCII 28 إلى 31.

ASCII ديسمبر رمز اسم يونيكود الاسم الشائع الاستخدام
28 فاصل المعلومات الرابع فاصل الملفات نهاية الملف. أو بين مجموعة من الملفات التي قد تكون منفصلة.
29 فاصل المعلومات الثالث فاصل المجموعة بين أقسام البيانات. ليست هناك حاجة لذلك في ملفات البيانات البسيطة.
30 فاصل المعلومات الثاني فاصل التسجيلات نهاية سجل أو صف.
31 فاصل المعلومات الأول فاصل الوحدة بين حقول السجل أو أعضاء الصف.

يؤدي استخدام فاصل الوحدات ASCII 31 كفاصل للحقول وفاصل السجلات ASCII 30 إلى حل مشكلة فواصل الحقول والسجلات التي تظهر في مجرى بيانات النص. [19]

شخصية الهروب

إحدى الطرق لتجنب تصادم الفواصل هي استخدام أحرف الإفلات . من وجهة نظر تصميم اللغة، هذه الطريقة مناسبة، لكنها لها عيوب:

  • يمكن أن يصبح النص غير قابل للقراءة عندما يكون مليئًا بالعديد من أحرف الإفلات، وهي مشكلة يشار إليها باسم متلازمة عود الأسنان المائل (بسبب استخدام \ للإفلات من / في التعبيرات العادية في Perl ، مما يؤدي إلى تسلسلات مثل "\/\/");
  • يصبح من الصعب تحليل النص من خلال التعبيرات العادية
  • إنهم يحتاجون إلى آلية "للهروب من الهروب" عندما لا يكون المقصود منهم أن يكونوا أحرف هروب؛ و
  • على الرغم من سهولة كتابتها، إلا أنها قد تكون غامضة بالنسبة لشخص غير مألوف باللغة. [20]
  • لا توفر الحماية ضد هجمات الحقن [ بحاجة لمصدر ]

تسلسل الهروب

تشبه تسلسلات الإفلات أحرف الإفلات، إلا أنها تتكون عادةً من نوع ما من الاختصارات بدلاً من حرف واحد فقط. أحد الاستخدامات هو في السلاسل الحرفية التي تتضمن حرف الاقتباس المزدوج (") على سبيل المثال في Perl ، الكود:

اطبع "قالت نانسي \x22مرحبا بالعالم!\x22 للحشد." ؛ ### استخدم \x22   

ينتج نفس الناتج مثل:

اطبع "قالت نانسي \"مرحبا بالعالم!\" للجمهور." ؛ ### استخدم حرف الهروب       

أحد عيوب تسلسلات الهروب، عندما يستخدمها الأشخاص، هو الحاجة إلى حفظ الرموز التي تمثل الأحرف الفردية (انظر أيضًا: مرجع كيان الحرف ، مرجع الحرف الرقمي ).

فاصلات الاقتباس المزدوجة

على النقيض من تسلسلات الإفلات وأحرف الإفلات، توفر الفواصل المزدوجة طريقة أخرى لتجنب تضارب الفواصل. على سبيل المثال، تسمح بعض اللغات باستخدام إما علامة اقتباس مفردة (') أو علامة اقتباس مزدوجة (") لتحديد حرف سلسلة. على سبيل المثال، في Perl :

طباعة 'قالت نانسي "مرحبا بالعالم!" للجمهور. ' 

ينتج الناتج المطلوب دون الحاجة إلى الهروب. ومع ذلك، لا يعمل هذا النهج إلا عندما لا يحتوي السلسلة على كلا النوعين من علامات الاقتباس.

حشو علامات الاقتباس

على النقيض من تسلسلات الإفلات وأحرف الإفلات، توفر فواصل الحشو طريقة أخرى لتجنب تصادم الفواصل. على سبيل المثال، يستخدم Visual Basic علامات اقتباس مزدوجة كفواصل. وهذا يشبه إفلات الفاصل.

قالت نانسي " "مرحبا بالعالم!"" للجمهور. 

ينتج الناتج المطلوب دون الحاجة إلى الإفلات. ومع ذلك، مثل الإفلات العادي، يمكن أن يصبح مربكًا عند استخدام العديد من علامات الاقتباس. سيبدو الكود المستخدم لطباعة الكود المصدر أعلاه أكثر إرباكًا:

قالت نانسي """"مرحبا بالعالم!"""" للجمهور.""" 

فواصل اقتباس بديلة قابلة للتكوين

على النقيض من الفواصل المزدوجة، فإن الفواصل المتعددة أكثر مرونة لتجنب تصادم الفواصل. [7] : 63 

على سبيل المثال، في Perl :

طباعة qq^نانسي لا تريد أن تقول "مرحبا بالعالم!" بعد الآن.^ ; طباعة qq@نانسي لا تريد أن تقول "مرحبا بالعالم!" بعد الآن.@ ; طباعة qq(نانسي لا تريد أن تقول "مرحبا بالعالم!" بعد الآن.) ; 
 
 

تنتج جميعها الناتج المطلوب من خلال استخدام مشغلات الاقتباس، والتي تسمح لأي حرف مناسب بالعمل كفاصل. وعلى الرغم من أن هذه الطريقة أكثر مرونة، إلا أن القليل من اللغات تدعمها. Perl و Ruby هما اثنتان من اللغات التي تدعمها. [7] : 62  [21]

حدود المحتوى

حدود المحتوى هي نوع خاص من الفواصل التي تم تصميمها خصيصًا لمقاومة تصادم الفواصل. وهي تعمل من خلال السماح للمؤلف بتحديد تسلسل من الأحرف يضمن دائمًا الإشارة إلى حدود بين الأجزاء في رسالة متعددة الأجزاء، دون أي تفسير آخر ممكن. [22]

غالبًا ما يتم إنشاء الفاصل من تسلسل عشوائي من الأحرف التي من غير المحتمل إحصائيًا أن تظهر في المحتوى. قد يتبع ذلك علامة تعريف مثل UUID أو علامة زمنية أو أي علامة مميزة أخرى. بدلاً من ذلك، قد يتم مسح المحتوى للتأكد من عدم ظهور الفاصل في النص. قد يسمح هذا بأن يكون الفاصل أقصر أو أبسط، ويزيد من قابلية قراءة المستند من قبل البشر. ( انظر على سبيل المثال ، MIME ، Here Documents ).

مسافة بيضاء أو مسافة بادئة

تسمح بعض لغات البرمجة والكمبيوتر باستخدام فواصل المسافات البيضاء أو المسافة البادئة كوسيلة لتحديد الحدود بين المناطق المستقلة في النص. [23]

بناء جملة التعابير العادية

عند تحديد تعبير عادي ، يمكن أيضًا استخدام فواصل بديلة لتبسيط بناء الجملة لعمليات المطابقة والاستبدال في Perl . [ 24]

على سبيل المثال، من الممكن تحديد عملية مطابقة بسيطة في Perl باستخدام بناء الجملة التالي:

$string1 = 'قالت نانسي "مرحبا بالعالم!" للجمهور.' ; # حدد سلسلة مستهدفة اطبع $string1 =~ m/[aeiou]+/ ; # تطابق حرف علة واحد أو أكثر      
                              

إن بناء الجملة مرن بما يكفي لتحديد عمليات المطابقة باستخدام فواصل بديلة، مما يجعل من السهل تجنب تصادم الفواصل:

$string1 = 'قالت نانسي أن "http://Hello/World.htm" ليس عنوانًا صالحًا.' ; # سلسلة الهدف طباعة $string1 =~ m@http://@ ; # المطابقة باستخدام فاصل تعبير عادي بديل طباعة $string1 =~ m{http://} ; # نفس السابق، ولكن فاصل مختلف طباعة $string1 =~ m!http://! ; # نفس السابق، ولكن فاصل مختلف.   
   
          
          
          

هنا الوثيقة

تسمح وثيقة Here بإدراج محتوى عشوائي من خلال وصف تسلسل نهاية خاص. تدعم العديد من اللغات هذا بما في ذلك PHP و bash scripts و ruby ​​و perl . تبدأ وثيقة Here بوصف التسلسل النهائي وتستمر حتى يتم رؤية هذا التسلسل في بداية سطر جديد. [25]

وهنا مثال في بيرل:

من الصعب جدًا ترميز سلسلة تحتوي على " أحرف معينة " . 


يمكن أن تتسبب الأسطر الجديدة والفواصل والأحرف الأخرى في حدوث تصادمات بين الفواصل. 
ENDOFHEREDOC

سيتم طباعة هذا الكود:

من الصعب جدًا ترميز سلسلة تحتوي على "أحرف معينة".

يمكن أن تتسبب الأسطر الجديدة والفواصل والأحرف الأخرى في حدوث تصادمات بين الفواصل.

من خلال استخدام تسلسل نهاية خاص، يتم السماح بكل أنواع الأحرف في السلسلة.

درع ASCII

على الرغم من استخدامها بشكل أساسي كآلية لترميز نص البيانات الثنائية، فإن ترميز ASCII هو تقنية برمجة وإدارة أنظمة تساعد أيضًا في تجنب تصادم الفاصل في بعض الظروف. [26] [27] تتناقض هذه التقنية مع الأساليب الأخرى الموضحة أعلاه لأنها أكثر تعقيدًا، وبالتالي فهي غير مناسبة للتطبيقات الصغيرة وتنسيقات تخزين البيانات البسيطة. تستخدم التقنية مخطط ترميز خاص، مثل base64 ، لضمان عدم ظهور الفاصل أو الأحرف المهمة الأخرى في البيانات المنقولة. والغرض من ذلك هو منع الإفلات متعدد الطبقات ، أي لعلامات الاقتباس المزدوجة .

تُستخدم هذه التقنية، على سبيل المثال، في تقنية تطوير الويب ASP.NET الخاصة بشركة Microsoft ، وهي مرتبطة ارتباطًا وثيقًا بمكون "VIEWSTATE" في هذا النظام. [28]

مثال

يوضح المثال المبسّط التالي كيفية عمل هذه التقنية في الممارسة العملية.

يعرض جزء التعليمات البرمجية الأول علامة HTML بسيطة تحتوي فيها قيمة VIEWSTATE على أحرف غير متوافقة مع فواصل علامة HTML نفسها:

<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:نانسي لم تعد تقول " مرحبا بالعالم!" بعد الآن." />      

هذا الجزء الأول من التعليمات البرمجية ليس مُشكَّلاً بشكل جيد ، وبالتالي لن يعمل بشكل صحيح في نظام تم نشره في "العالم الحقيقي".

لتخزين نص عشوائي في سمة HTML، يمكن استخدام كيانات HTML . في هذه الحالة، تحل علامة "" محل علامة الاقتباس المزدوجة:

<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:نانسي لم تعد تقول "مرحبا بالعالم!" بعد الآن." />    

بدلاً من ذلك، يمكن استخدام أي ترميز لا يتضمن أحرفًا لها معنى خاص في السياق، مثل base64:

< نوع الإدخال= "مخفي" الاسم= "__VIEWSTATE" القيمة= "Qm9va1RpdGxlOk5hbmN5IGRvZXNuJ3Qgc2F5ICJIZWxsbyBXb3JsZCEiIGFueW1vcmUu" />    

أو ترميز النسبة المئوية :

<input type= "hidden" name= "__VIEWSTATE" value= "BookTitle:نانسي لا تقول مرحبا بالعالم! بعد الآن." />    

يمنع هذا تصادم الفاصل ويضمن عدم ظهور أحرف غير متوافقة داخل كود HTML، بغض النظر عن الأحرف التي تظهر في النص الأصلي (المُفكك). [28]

انظر أيضا

مراجع

  1. ^ "تعريف: فاصل". المعيار الفيدرالي 1037C - الاتصالات: مسرد مصطلحات الاتصالات . مؤرشف من الأصل في 2013-03-05 . تم الاسترجاع في 2019-11-25 .
  2. ^ "ما هو الفاصل؟". www.computerhope.com . تم الاسترجاع في 2020-08-09 .
  3. ^ Rohl, Jeffrey S. (1973). Programming in Fortran . Oxford Oxfordshire: Oxford University Press. ISBN 978-0-7190-0555-8.وصف الطريقة في صيغة هوليريث تحت لغة البرمجة فورتران.
  4. ^ ab de Moor, Georges J. (1993). التقدم في التقييس في المعلوماتية الصحية . IOS Press. ISBN 90-5199-114-2.ص 141
  5. ^ فريدل، جيفري إي إف (2002). إتقان التعبيرات العادية: تقنيات قوية لبيرل وأدوات أخرى . أوريلي. رقم ISBN 0-596-00289-0.ص 319
  6. ^ سكوت، مايكل لي (1999). لغة البرمجة البراجماتية . مورجان كوفمان. ISBN 1-55860-442-1.
  7. ^ abc Wall, Larry ; Orwant, Jon (يوليو 2000). Programming Perl (الطبعة الثالثة). O'Reilly. ISBN 0-596-00027-8.
  8. ^ كوفمان، مات (2000). التفكير بمساعدة الكمبيوتر: نهج . سبرينغر. رقم ISBN 0-7923-7744-3.ص3
  9. ^ ماير، مارك (2005). استكشافات في علوم الكمبيوتر . أوكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. رقم ISBN 978-0-7637-3832-7.تشير لغات البرمجة من النوع C إلى وجود أقواس متعرجة وفاصلات منقوطة بشكل بارز.
  10. ^ ديليجان، روبرت (1998). الحوسبة في عصر الويب . أوكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. رقم ISBN 978-0-306-45972-6.يصف بناء الجملة والفاصلات المستخدمة في HTML.
  11. ^ ab Schwartz, Randal (2005). تعلم لغة بيرل. أوكسفورد أوكسفوردشاير: مطبعة جامعة أوكسفورد. ISBN 978-0-596-10105-3.يصف السلسلة الحرفية .
  12. ^ وات، أندرو (2003). سامز علم نفسك لغة إكس إم إل في 10 دقائق . أوكسفورد أوكسفوردشاير: مطبعة جامعة أوكسفورد. رقم ISBN 978-0-672-32471-0.يصف تعليمات معالجة XML. ص 21.
  13. ^ كابريرا، هارولد (2002). C# لمبرمجي جافا . أوكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. ISBN 978-1-931836-54-8.يصف التعليقات ذات السطر الواحد والمتعددة الأسطر. ص 72.
  14. ^ "مواصفات صفحات خادم جاكرتا، الإصدار 4.0مواصفات صفحات خادم جاكرتا، الإصدار 4.0". GitHub . تم الاسترجاع في 10 فبراير 2023 .
  15. ^ ISO/TC 97/SC 2 (1 ديسمبر 1975). مجموعة أحرف التحكم الخاصة بـ ISO 646 (PDF) . ITSCJ/ IPSJ . ISO-IR -1.{{citation}}:CS1 maint: أسماء رقمية: قائمة المؤلفين ( الرابط )
  16. ^ المعهد الوطني الأمريكي للمعايير (1 ديسمبر 1975). مجموعة أحرف الرسوم البيانية ASCII (PDF) . ITSCJ/ IPSJ . ISO-IR -6.
  17. ^ لوين، دونالد (1991). دليل مبرمجي Posix. أوكسفورد أوكسفوردشاير: مطبعة جامعة أوكسفورد. رقم ISBN 978-0-937175-73-6.يصف استخدام control-zp 156،
  18. ^ فريدل، جيفري (2006). إتقان التعبيرات العادية . أوكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. رقم ISBN 978-0-596-52812-6.وصف الحلول لمشاكل الفاصل المضمن ص 472.
  19. ^ مناقشة حول النص المحدد بـ ASCII مقابل CSV و Tab Delimited
  20. ^ كاهريل، بيتر (2006). أتمتة برنامج InDesign باستخدام التعبيرات العادية . أوريلي. ص. 11. رقم ISBN 0-596-52937-6.
  21. ^ يوكيهيرو ماتسوموتو (2001). روبي باختصار. أورايلي. رقم ISBN 0-596-00214-9.في Ruby، يتم الإشارة إلى هذه على أنها سلاسل محددة عامة . ص. 11
  22. ^ دليل بروتوكولات الشبكة . Javvin Technologies Inc. 2005. ISBN 0-9740945-2-8.ص 26
  23. ^ اللغويات الحاسوبية ومعالجة النصوص الذكية . أكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. 2001. ISBN 978-3-540-41687-6.يصف فواصل المسافات البيضاء. ص 258.
  24. ^ فريدل، جيفري (2006). إتقان التعبيرات العادية . أوكسفورد أوكسفوردشاير: مطبعة جامعة أكسفورد. رقم ISBN 978-0-596-52812-6.الصفحة 472.
  25. ^ مشغلات Perl والأسبقية
  26. ^ ري، مان (2003). أمان الإنترنت: المبادئ والخوارزميات والبروتوكولات التشفيرية . جون وايلي وأولاده. رقم ISBN 0-470-85285-2.(مثال على استخدام درع ASCII في تطبيقات التشفير)
  27. ^ جروس، كريستيان (2005). المصدر المفتوح لمشرفي ويندوز . تشارلز ريفر ميديا. رقم ISBN 1-58450-347-5.(مثال على استخدام درع ASCII في تطبيقات التشفير)
  28. ^ ab Kalani, Amit (2004). تطوير وتنفيذ تطبيقات الويب باستخدام Visual C# . NET و Visual Studio . NET . Que. ISBN 0-7897-2901-6.(يصف استخدام ترميز Base64 وVIEWSTATE داخل كود مصدر HTML)
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=فاصل&oldid=1215698820"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate