نظرة عامة
الدوال المذكورة في هذا القسم مُحسَّنة لتحقيق أقصى أداء، وفي معظم الحالات لا تتوافق مع معيار RFC-3986.
أما الدوال التي تطبّق RFC-3986، فيُلحق
RFC باسم الدالة، وتكون أبطأ عمومًا.RFC عند العمل مع النطاقات المسجَّلة علنًا التي لا تتضمن معلومات مستخدم ولا رموز @.
يوضح الجدول أدناه الرموز التي يمكن (✔) أو لا يمكن (✗) تحليلها بواسطة صيغ RFC وغير RFC المقابلة:
الرموز المعلَّمة بـ
* هي محددات فرعية وفق RFC 3986، ويُسمح بها في معلومات المستخدم التي تلي الرمز @.
يوجد نوعان من دوال URL:
- دوال تستخرج أجزاء من URL. إذا لم يكن الجزء المطلوب موجودًا في URL، فستُعاد سلسلة فارغة.
- دوال تزيل جزءًا من URL. وإذا لم يحتوِ URL على أي شيء مماثل، فسيبقى دون تغيير.
الدوال أدناه مُولَّدة من جدول النظام
system.functions.URLHierarchy
/ و? و# في المسار وسلسلة الاستعلام. وتُحتسب أحرف الفصل المتتالية كأنها حرف واحد. تتضمن النتيجة البروتوكول والمضيف كأول عنصر، ثم مسارات تزداد طولًا تدريجيًا لتشكّل تسلسلاً هرميًا.
البنية
url— عنوان URL المطلوب معالجته.String
Array(String)
أمثلة
الاستخدام الأساسي
Query
Response
URLPathHierarchy
URL، مع اقتطاع نهايته عند الرموز / و? و#. وعلى عكس URLHierarchy، لا تتضمن النتيجة protocol وhost — بل تبدأ من المسار. وتُحسب محارف الفصل المتتالية على أنها محرف واحد.
البنية
url— عنوان URL المطلوب معالجته.String
Array(String)
أمثلة
الاستخدام الأساسي
Query
Response
cutFragment
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutQueryString
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutQueryStringAndFragment
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomain
url— URL أو سلسلة نطاق للمعالجة.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomainCustom
url— URL أو سلسلة نطاق لمعالجتها.Stringtld_list_name— اسم قائمة TLD المخصّصة المُعدّة في ClickHouse.const String
String
أمثلة
استخدام قائمة TLD مخصّصة للنطاقات غير القياسية
Query
Response
cutToFirstSignificantSubdomainCustomRFC
url— URL أو سلسلة نطاق تُعالَج وفقًا للمواصفة RFC 3986. -tld_list_name— اسم قائمة TLD المخصصة المُعدّة في ClickHouse.
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomainCustomWithWWW
url— URL أو سلسلة نطاق لمعالجتها. -tld_list_name— اسم قائمة TLD المخصّصة المُعدّة في ClickHouse.
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomainCustomWithWWWRFC
www.
يقبل اسم قائمة TLD مخصصة.
قد يكون هذا مفيدًا إذا كنت بحاجة إلى قائمة TLD محدَّثة أو إذا كانت لديك قائمة مخصصة.
مشابه لـ cutToFirstSignificantSubdomainCustomWithWWW، لكنه متوافق مع RFC 3986.
مثال على التهيئة
url— URL أو سلسلة نطاق لمعالجتها وفقًا للمعيار RFC 3986. -tld_list_name— اسم قائمة TLD المخصّصة التي تم إعدادها في ClickHouse.
www. String
أمثلة
تحليل RFC 3986 مع الاحتفاظ بـ www باستخدام قائمة TLD مخصّصة
Query
Response
cutToFirstSignificantSubdomainRFC
cutToFirstSignificantSubdomain، لكنه متوافق مع RFC 3986.
الصياغة
url— URL أو سلسلة نطاق تُعالَج وفقًا للمواصفة RFC 3986.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomainWithWWW
cutToFirstSignificantSubdomain، لكنها تحتفظ بالبادئة ‘www.’ إذا كانت موجودة.
الصيغة
url— عنوان URL أو سلسلة نطاق لمعالجتها.String
String
أمثلة
مثال على الاستخدام
Query
Response
cutToFirstSignificantSubdomainWithWWWRFC
cutToFirstSignificantSubdomainWithWWW، لكنه متوافق مع RFC 3986.
البنية
url— URL أو سلسلة نطاق لمعالجتها وفقًا للمعيار RFC 3986.
String
أمثلة
مثال على الاستخدام
Query
Response
cutURLParameter
name من URL، إذا كانت موجودة.
لا تُشفِّر هذه الدالة الأحرف في أسماء المعلَمات ولا تفك ترميزها. على سبيل المثال، يُعامَل Client ID وClient%20ID على أنهما اسما معلَمتين مختلفين.
البنية
url— URL.Stringname— اسم معلَمة URL.StringأوArray(String)
name منه. String
أمثلة
مثال على الاستخدام
Query
Response
cutWWW
www.، إن وُجدت، من اسم النطاق في URL.
البنية
url— URL.String
www. من النطاق. String
أمثلة
مثال على الاستخدام
Query
Response
decodeURLComponent
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
decodeURLFormComponent
+ إلى مسافات وتُفكَّك المحارف المرمَّزة بالنسبة المئوية.
البنية
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
domain
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
domainRFC
domain، لكنه متوافق مع RFC 3986.
الصيغة
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
domainWithoutWWW
www. إذا كانت موجودة.
البنية
url— URL.String
www. في البداية)، وإلا فتُعيد سلسلة فارغة. String
أمثلة
مثال على الاستخدام
Query
Response
domainWithoutWWWRFC
www. في بدايته إن وُجدت. وهي مشابهة لـ domainWithoutWWW، لكنها متوافقة مع RFC 3986.
الصياغة
url— URL.String
www. في البداية)، وإلا فتُعيد سلسلة فارغة. String
أمثلة
مثال للاستخدام
Query
Response
encodeURLComponent
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
encodeURLFormComponent
url— URL.String
String
أمثلة
مثال للاستخدام
Query
Response
extractURLParameter
name في URL إن وُجدت، وإلا فتُعاد سلسلة فارغة.
إذا كانت هناك عدة معلَمات بهذا الاسم، فتُعاد أول قيمة منها.
تفترض الدالة أن المعلَمة ضمن المعلَمة url مُرمَّزة بالطريقة نفسها كما في الوسيط name.
الصيغة
String
أمثلة
مثال على الاستخدام
Query
Response
extractURLParameterNames
url— URL.String
Array(String)
أمثلة
مثال على الاستخدام
Query
Response
extractURLParameters
name=value النصية التي تقابل معلمات URL.
ولا تُفك ترميز القيم.
البنية
url— URL.String
name=value التي تقابل معلمات URL. Array(String)
أمثلة
مثال على الاستخدام
Query
Response
firstSignificantSubdomain
- لا شيء.
Query
Response
firstSignificantSubdomainCustom
url— عنوان URL المراد استخراج النطاق الفرعي منه.Stringtld_list_name— اسم قائمة TLD المخصّصة من التكوين.String
String
أمثلة
الاستخدام الأساسي
Query
Response
firstSignificantSubdomainCustomRFC
firstSignificantSubdomainCustom، لكنه يستخدم تحليل URL متوافقًا مع RFC 3986 بدلًا من الخوارزمية المبسطة.
الصياغة
url— عنوان URL المراد استخراج النطاق الفرعي منه.Stringtld_list_name— اسم قائمة TLD المخصصة في التهيئة.String
String
أمثلة
الاستخدام الأساسي
Query
Response
firstSignificantSubdomainRFC
- لا توجد.
fragment
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
netloc
username:password@host:port) من URL.
البنية
url— URL.String
username:password@host:port من URL محدد. String
أمثلة
مثال على الاستخدام
Query
Response
path
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
pathFull
path، لكنه يتضمن سلسلة الاستعلام والمقطع من URL.
الصيغة
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
port
default_port إذا كان URL لا يتضمن منفذًا أو تعذّر تحليله.
الصيغة
url— URL.سلسلة نصيةdefault_port— اختياري. رقم المنفذ الافتراضي الذي سيتم إرجاعه. القيمة الافتراضية هي0.UInt16
UInt16
أمثلة
مثال على الاستخدام
Query
Response
portRFC
default_port إذا كان URL لا يتضمن منفذًا أو تعذّر تحليله.
مشابه لـ port، لكنه متوافق مع RFC 3986.
الصياغة
url— URL.Stringdefault_port— اختياري. رقم المنفذ الافتراضي الذي سيتم إرجاعه.0افتراضيًا.UInt16
UInt16
أمثلة
مثال على الاستخدام
Query
Response
protocol
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
queryString
# وكل ما بعد #.
الصياغة
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
queryStringAndFragment
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
topLevelDomain
يمكن تحديد URL سواء تضمّن بروتوكولًا أم لا.
على سبيل المثال:
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response
topLevelDomainRFC
أُضيف في: v22.10.0 يستخرج نطاق المستوى الأعلى من URL. وهو مشابه لـtopLevelDomain، لكنه متوافق مع RFC 3986.
الصياغة
url— URL.String
String
أمثلة
مثال على الاستخدام
Query
Response