> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق للدوال المستخدمة للتعامل مع عناوين URL

# دوال للتعامل مع عناوين URL

<div id="overview">
  ## نظرة عامة
</div>

<Note>
  الدوال المذكورة في هذا القسم مُحسَّنة لتحقيق أقصى أداء، وفي معظم الحالات لا تتوافق مع معيار RFC-3986.
  أما الدوال التي تطبّق RFC-3986، فيُلحق `RFC` باسم الدالة، وتكون أبطأ عمومًا.
</Note>

يمكنك عمومًا استخدام صيغ الدوال غير `RFC` عند العمل مع النطاقات المسجَّلة علنًا التي لا تتضمن معلومات مستخدم ولا رموز `@`.
يوضح الجدول أدناه الرموز التي يمكن (`✔`) أو لا يمكن (`✗`) تحليلها بواسطة صيغ `RFC` وغير `RFC` المقابلة:

| الرمز | non-`RFC` | `RFC` |   |
| ----- | --------- | ----- | - |
| ' '   | ✗         | ✗     |   |
| \t    | ✗         | ✗     |   |
| \<    | ✗         | ✗     |   |
| >     | ✗         | ✗     |   |
| %     | ✗         | ✔\*   |   |
| \{    | ✗         | ✗     |   |
| }     | ✗         | ✗     |   |
|       |           | ✗     | ✗ |
| \\    | ✗         | ✗     |   |
| ^     | ✗         | ✗     |   |
| \~    | ✗         | ✔\*   |   |
| \[    | ✗         | ✗     |   |
| ]     | ✗         | ✔     |   |
| ;     | ✗         | ✔\*   |   |
| =     | ✗         | ✔\*   |   |
| &     | ✗         | ✔\*   |   |

الرموز المعلَّمة بـ `*` هي محددات فرعية وفق RFC 3986، ويُسمح بها في معلومات المستخدم التي تلي الرمز `@`.

يوجد نوعان من دوال URL:

* دوال تستخرج أجزاء من URL. إذا لم يكن الجزء المطلوب موجودًا في URL، فستُعاد سلسلة فارغة.
* دوال تزيل جزءًا من URL. وإذا لم يحتوِ URL على أي شيء مماثل، فسيبقى دون تغيير.

<Note>
  الدوال أدناه مُولَّدة من جدول النظام `system.functions`.
</Note>

{/*AUTOGENERATED_START*/}

<div id="URLHierarchy">
  ## URLHierarchy
</div>

أُضيف في: v1.1.0

يعيد مصفوفة تحتوي على URL بعد اقتطاعه من النهاية عند الرموز `/` و`?` و`#` في المسار وسلسلة الاستعلام. وتُحتسب أحرف الفصل المتتالية كأنها حرف واحد. تتضمن النتيجة البروتوكول والمضيف كأول عنصر، ثم مسارات تزداد طولًا تدريجيًا لتشكّل تسلسلاً هرميًا.

**البنية**

```sql theme={null}
URLHierarchy(url)
```

**المعاملات**

* `url` — عنوان URL المطلوب معالجته. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع مصفوفة من عناوين URL الأطول تدريجيًا، بما يشكّل تسلسلًا هرميًا. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT URLHierarchy('https://example.com/a/b?c=1')
```

```response title=Response theme={null}
['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1']
```

<div id="URLPathHierarchy">
  ## URLPathHierarchy
</div>

أُضيفت في: v1.1.0

تعيد مصفوفة تحتوي على مكوّن المسار في `URL`، مع اقتطاع نهايته عند الرموز `/` و`?` و`#`. وعلى عكس `URLHierarchy`، لا تتضمن النتيجة `protocol` و`host` — بل تبدأ من المسار. وتُحسب محارف الفصل المتتالية على أنها محرف واحد.

**البنية**

```sql theme={null}
URLPathHierarchy(url)
```

**الوسيطات**

* `url` — عنوان URL المطلوب معالجته. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد مصفوفة من مكوّنات مسار URL المتزايدة طولًا تدريجيًا، والتي تُشكّل تسلسلًا هرميًا. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT URLPathHierarchy('https://example.com/a/b?c=1')
```

```response title=Response theme={null}
['/a/','/a/b','/a/b?c=1']
```

<div id="cutFragment">
  ## cutFragment
</div>

أُضيفت في: v1.1.0

تزيل مُعرّف الجزء، بما في ذلك علامة #، من عنوان URL.

**الصياغة**

```sql theme={null}
cutFragment(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد عنوان URL بعد إزالة مُعرّف الجزء منه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutFragment('http://example.com/path?query=value#fragment123');
```

```response title=Response theme={null}
┌─cutFragment('http://example.com/path?query=value#fragment123')─┐
│ http://example.com/path?query=value                            │
└────────────────────────────────────────────────────────────────┘
```

<div id="cutQueryString">
  ## cutQueryString
</div>

أُضيف في: v1.1.0

يزيل سلسلة الاستعلام من URL، بما في ذلك علامة الاستفهام.

**الصيغة**

```sql theme={null}
cutQueryString(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُعيد URL بعد إزالة سلسلة الاستعلام منه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutQueryString('http://example.com/path?query=value&param=123#fragment');
```

```response title=Response theme={null}
┌─cutQueryString('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path#fragment                                         │
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="cutQueryStringAndFragment">
  ## cutQueryStringAndFragment
</div>

أُضيف في: v1.1.0

يزيل سلسلة الاستعلام ومُعرّف الجزء، بما في ذلك علامة الاستفهام والرمز #، من URL.

**البنية**

```sql theme={null}
cutQueryStringAndFragment(url)
```

**الوسيطات**

* `url` — ‏URL. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد URL بعد إزالة سلسلة الاستعلام ومُعرّف الجزء. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment');
```

```response title=Response theme={null}
┌─cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path                                                             │
└─────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="cutToFirstSignificantSubdomain">
  ## cutToFirstSignificantSubdomain
</div>

أُضيفت في: v1.1.0

تعيد الجزء من اسم النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى [أول نطاق فرعي مهم](/ar/reference/functions/regular-functions/url-functions#firstSignificantSubdomain).

**الصياغة**

```sql theme={null}
cutToFirstSignificantSubdomain(url)
```

**الوسائط**

* `url` — ‏URL أو سلسلة نطاق للمعالجة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى وصولًا إلى أول نطاق فرعي مهم إن أمكن، وإلا فتُعيد سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomain('www.tr'),
    cutToFirstSignificantSubdomain('tr');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomain('www.tr')─┬─cutToFirstSignificantSubdomain('tr')─┐
│ clickhouse.com.tr                                                 │ tr                                       │                                      │
└───────────────────────────────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────┘
```

<div id="cutToFirstSignificantSubdomainCustom">
  ## cutToFirstSignificantSubdomainCustom
</div>

استُحدث في: v21.1.0

يعيد الجزء من اسم النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم. يقبل اسم [قائمة TLD](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) مخصّصة. قد تكون هذه الدالة مفيدة إذا كنت بحاجة إلى قائمة TLD محدّثة أو كانت لديك قائمة مخصّصة.

**مثال على التهيئة**

```yaml theme={null}
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
```

**البنية**

```sql theme={null}
cutToFirstSignificantSubdomainCustom(url, tld_list_name)
```

**الوسيطات**

* `url` — URL أو سلسلة نطاق لمعالجتها. [`String`](/ar/reference/data-types/string)
* `tld_list_name` — اسم قائمة TLD المخصّصة المُعدّة في ClickHouse. [`const String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد جزء النطاق الذي يشمل النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم. [`String`](/ar/reference/data-types/string)

**أمثلة**

**استخدام قائمة TLD مخصّصة للنطاقات غير القياسية**

```sql title=Query theme={null}
SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list')
```

```response title=Response theme={null}
foo.there-is-no-such-domain
```

<div id="cutToFirstSignificantSubdomainCustomRFC">
  ## cutToFirstSignificantSubdomainCustomRFC
</div>

أُضيف في: v22.10.0

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم.
يقبل اسم [قائمة TLD](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) مخصصة.
قد تكون هذه الدالة مفيدة إذا كنت بحاجة إلى قائمة TLD أحدث أو إذا كانت لديك قائمة مخصصة.
وهي مشابهة لـ [cutToFirstSignificantSubdomainCustom](#cutToFirstSignificantSubdomainCustom)، لكنها متوافقة مع RFC 3986.

**مثال على التهيئة**

```xml theme={null}
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
```

**الصيغة**

```sql theme={null}
cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)
```

**المعاملات**

* `url` — URL أو سلسلة نطاق تُعالَج وفقًا للمواصفة RFC 3986. - `tld_list_name` — اسم قائمة TLD المخصصة المُعدّة في ClickHouse.

**القيمة المعادة**

تعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─────┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘
```

<div id="cutToFirstSignificantSubdomainCustomWithWWW">
  ## cutToFirstSignificantSubdomainCustomWithWWW
</div>

استُحدث في: v21.1.0

يعيد الجزء من اسم النطاق الذي يتضمن النطاقات الفرعية العليا حتى أول نطاق فرعي مهم، من دون إزالة 'www'. ويقبل اسم قائمة TLD مخصصة. قد يكون ذلك مفيدًا إذا كنت بحاجة إلى قائمة TLD محدَّثة أو كانت لديك قائمة مخصصة.

**مثال على التهيئة**

````yaml theme={null}
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)
````

**الوسيطات**

* `url` — ‏URL أو سلسلة نطاق لمعالجتها. - `tld_list_name` — اسم قائمة TLD المخصّصة المُعدّة في ClickHouse.

**القيمة المُعادة**

الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم، من دون حذف 'www'. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list')─┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘
```

<div id="cutToFirstSignificantSubdomainRFC">
  ## cutToFirstSignificantSubdomainCustomWithWWWRFC
</div>

أُضيف في: v22.10.0

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية العليا حتى أول نطاق فرعي مهم، من دون إزالة `www`.
يقبل اسم قائمة TLD مخصصة.
قد يكون هذا مفيدًا إذا كنت بحاجة إلى قائمة TLD محدَّثة أو إذا كانت لديك قائمة مخصصة.
مشابه لـ [cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**مثال على التهيئة**

````xml theme={null}
{/* <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> */}
<top_level_domains_lists>
    {/* https://publicsuffix.org/list/public_suffix_list.dat */}
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    {/* NOTE: path is under top_level_domains_path */}
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name)
````

**الوسيطات**

* `url` — ‏URL أو سلسلة نطاق لمعالجتها وفقًا للمعيار RFC 3986. - `tld_list_name` — اسم قائمة TLD المخصّصة التي تم إعدادها في ClickHouse.

**القيمة المُعادة**

يُرجع الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم، من دون إزالة `www`. [`String`](/ar/reference/data-types/string)

**أمثلة**

**تحليل RFC 3986 مع الاحتفاظ بـ www باستخدام قائمة TLD مخصّصة**

```sql title=Query theme={null}
SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
```

```response title=Response theme={null}
www.example.custom
```

<div id="cutToFirstSignificantSubdomainWithWWW">
  ## cutToFirstSignificantSubdomainRFC
</div>

أُضيف في: v22.10.0

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية العليا حتى الوصول إلى ["أول نطاق فرعي مهم"](/ar/reference/functions/regular-functions/url-functions#firstSignificantSubdomain). وهو مشابه لـ [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**الصياغة**

```sql theme={null}
cutToFirstSignificantSubdomainRFC(url)
```

**الوسيطات**

* `url` — ‏URL أو سلسلة نطاق تُعالَج وفقًا للمواصفة RFC 3986. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى أول نطاق فرعي مهم، إن أمكن؛ وإلا فيُرجع سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    cutToFirstSignificantSubdomain('http://user:password@example.com:8080'),
    cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomain('http://user:password@example.com:8080')─┬─cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080')─┐
│                                                                         │ example.com                                                                │
└─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘
```

<div id="cutToFirstSignificantSubdomainWithWWWRFC">
  ## cutToFirstSignificantSubdomainWithWWW
</div>

أُضيفت في: v20.12.0

تُرجع الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى "أول نطاق فرعي مهم"، من دون إزالة البادئة '[www](http://www).'.

وهي مشابهة لـ [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)، لكنها تحتفظ بالبادئة '[www](http://www).' إذا كانت موجودة.

**الصيغة**

```sql theme={null}
cutToFirstSignificantSubdomainWithWWW(url)
```

**الوسائط**

* `url` — عنوان URL أو سلسلة نطاق لمعالجتها. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية العليا حتى أول نطاق فرعي مهم (بما في ذلك www) إن أمكن، وإلا فيُرجع سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomainWithWWW('www.tr'),
    cutToFirstSignificantSubdomainWithWWW('tr');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomainWithWWW('www.tr')─┬─cutToFirstSignificantSubdomainWithWWW('tr')─┐
│ clickhouse.com.tr                                                        │ www.tr                                          │                                             │
└──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘
```

<div id="cutURLParameter">
  ## cutToFirstSignificantSubdomainWithWWWRFC
</div>

أُضيف في: v22.10.0

يعيد الجزء من اسم النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى حتى "أول نطاق فرعي مهم"، من دون إزالة 'www'. وهو مشابه لـ [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**البنية**

```sql theme={null}
cutToFirstSignificantSubdomainWithWWWRFC(url)
```

**الوسائط**

* `url` — ‏URL أو سلسلة نطاق لمعالجتها وفقًا للمعيار RFC 3986.

**القيمة المعادة**

يعيد الجزء من النطاق الذي يتضمن النطاقات الفرعية ذات المستوى الأعلى وصولًا إلى أول نطاق فرعي مهم (بما في ذلك 'www') إن أمكن، وإلا فيعيد سلسلة فارغة [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy'),
    cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy');
```

```response title=Response theme={null}
┌─cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┬─cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┐
│                                                                                       │ mail.ru                                                                                  │
└───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="cutWWW">
  ## cutURLParameter
</div>

أُضيف في: v1.1.0

يزيل المعلَمة `name` من URL، إذا كانت موجودة.
لا تُشفِّر هذه الدالة الأحرف في أسماء المعلَمات ولا تفك ترميزها. على سبيل المثال، يُعامَل `Client ID` و`Client%20ID` على أنهما اسما معلَمتين مختلفين.

**البنية**

```sql theme={null}
cutURLParameter(url, name)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)
* `name` — اسم معلَمة URL. [`String`](/ar/reference/data-types/string) أو [`Array(String)`](/ar/reference/data-types/array)

**القيمة المُعادة**

URL بعد إزالة معلَمة URL `name` منه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', 'a') AS url_without_a,
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', ['c', 'e']) AS url_without_c_and_e;
```

```response title=Response theme={null}
┌─url_without_a────────────────┬─url_without_c_and_e──────┐
│ http://bigmir.net/?c=d&e=f#g │ http://bigmir.net/?a=b#g │
└──────────────────────────────┴──────────────────────────┘
```

<div id="decodeURLComponent">
  ## cutWWW
</div>

قُدِّمت في: v1.1.0

تزيل البادئة `www.`، إن وُجدت، من اسم النطاق في URL.

**البنية**

```sql theme={null}
cutWWW(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد URL بعد إزالة البادئة `www.` من النطاق. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT cutWWW('http://www.example.com/path?query=value#fragment');
```

```response title=Response theme={null}
┌─cutWWW('http://www.example.com/path?query=value#fragment')─┐
│ http://example.com/path?query=value#fragment               │
└────────────────────────────────────────────────────────────┘
```

<div id="decodeURLFormComponent">
  ## decodeURLComponent
</div>

قُدِّمت في: v1.1.0

تأخذ سلسلة مشفّرة بتنسيق URL كمدخل، ثم تفكّ ترميزها لتعيدها إلى صيغتها الأصلية المقروءة.

**الصياغة**

```sql theme={null}
decodeURLComponent(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد عنوان URL بعد فك ترميزه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
```

```response title=Response theme={null}
┌─DecodedURL─────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1; │
└────────────────────────────────────────┘
```

<div id="domain">
  ## decodeURLFormComponent
</div>

أُضيف في: v1.1.0

يفك ترميز السلاسل المرمَّزة وفق URL باستخدام قواعد ترميز النماذج ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))، حيث تُحوَّل علامات `+` إلى مسافات وتُفكَّك المحارف المرمَّزة بالنسبة المئوية.

**البنية**

```sql theme={null}
decodeURLFormComponent(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد عنوان URL بعد فك ترميزه. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') AS DecodedURL;
```

```response title=Response theme={null}
┌─DecodedURL────────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1 2+3 │
└───────────────────────────────────────────┘
```

<div id="domainRFC">
  ## domain
</div>

قُدِّم في: v1.1.0

يستخرج اسم المضيف من URL.

يمكن تحديد URL مع بروتوكول أو من دونه.

**الصيغة**

```sql theme={null}
domain(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد اسم المضيف إذا أمكن تحليل سلسلة الإدخال على أنها URL، وإلا فسيُعاد نص فارغ. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk');
```

```response title=Response theme={null}
┌─domain('svn+ssh://some.svn-hosting.com:80/repo/trunk')─┐
│ some.svn-hosting.com                                   │
└────────────────────────────────────────────────────────┘
```

<div id="domainWithoutWWW">
  ## domainRFC
</div>

أُضيف في: v22.10.0

يستخرج اسم المضيف من URL.
يشبه [`domain`](#domain)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**الصيغة**

```sql theme={null}
domainRFC(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد اسم المضيف إذا أمكن تحليل سلسلة الإدخال باعتبارها URL، وإلا فيعيد سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    domain('http://user:password@example.com:8080/path?query=value#fragment'),
    domainRFC('http://user:password@example.com:8080/path?query=value#fragment');
```

```response title=Response theme={null}
┌─domain('http://user:password@example.com:8080/path?query=value#fragment')─┬─domainRFC('http://user:password@example.com:8080/path?query=value#fragment')─┐
│                                                                           │ example.com                                                                  │
└───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘
```

<div id="domainWithoutWWWRFC">
  ## domainWithoutWWW
</div>

قُدِّمت في: v1.1.0

تُرجع اسم النطاق من URL بدون البادئة `www.` إذا كانت موجودة.

**البنية**

```sql theme={null}
domainWithoutWWW(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد اسم النطاق إذا أمكن تفسير سلسلة الإدخال على أنها URL (من دون `www.` في البداية)، وإلا فتُعيد سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT domainWithoutWWW('http://paul@www.example.com:80/');
```

```response title=Response theme={null}
┌─domainWithoutWWW('http://paul@www.example.com:80/')─┐
│ example.com                                         │
└─────────────────────────────────────────────────────┘
```

<div id="encodeURLComponent">
  ## domainWithoutWWWRFC
</div>

استُحدثت في: v1.1.0

تُرجع اسم النطاق من دون `www.` في بدايته إن وُجدت. وهي مشابهة لـ [`domainWithoutWWW`](#domainWithoutWWW)، لكنها متوافقة مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**الصياغة**

```sql theme={null}
domainWithoutWWWRFC(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد اسم النطاق إذا أمكن تحليل سلسلة الإدخال باعتبارها URL (من دون `www.` في البداية)، وإلا فتُعيد سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment'),
    domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment');
```

```response title=Response theme={null}
┌─domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment')─┬─domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment')─┐
│                                                                                         │ example.com                                                                                │
└─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="encodeURLFormComponent">
  ## encodeURLComponent
</div>

قُدِّمت في: v22.3.0

تأخذ سلسلة نصية عادية وتحوّلها إلى صيغة بترميز URL (الترميز بالنسبة المئوية)، حيث تُستبدل الأحرف الخاصة بما يقابلها بترميز النسبة المئوية.

**الصيغة**

```sql theme={null}
encodeURLComponent(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع عنوان URL المُرمَّز. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedURL;
```

```response title=Response theme={null}
┌─EncodedURL───────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT%201%3B │
└──────────────────────────────────────────────────────────┘
```

<div id="extractURLParameter">
  ## encodeURLFormComponent
</div>

أُضيفت في: v22.3.0

تُرمِّز السلاسل النصية وفق قواعد ترميز النماذج ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))، حيث تُحوَّل المسافات إلى علامات +، وتُرمَّز الأحرف الخاصة باستخدام الترميز بالنسبة المئوية.

**البنية**

```sql theme={null}
encodeURLFormComponent(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع عنوان URL المُرمَّز. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS EncodedURL;
```

```response title=Response theme={null}
┌─EncodedURL────────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT+1+2%2B3 │
└───────────────────────────────────────────────────────────┘
```

<div id="extractURLParameterNames">
  ## extractURLParameter
</div>

أُضيف في: v1.1.0

يعيد قيمة المعلَمة `name` في URL إن وُجدت، وإلا فتُعاد سلسلة فارغة.
إذا كانت هناك عدة معلَمات بهذا الاسم، فتُعاد أول قيمة منها.
تفترض الدالة أن المعلَمة ضمن المعلَمة `url` مُرمَّزة بالطريقة نفسها كما في الوسيط `name`.

**الصيغة**

```sql theme={null}
extractURLParameter(url, name)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)
* `name` — اسم المعلَمة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع قيمة معلَمة URL ذات الاسم المحدد. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
```

```response title=Response theme={null}
┌─extractURLPa⋯, 'param1')─┐
│ value1                   │
└──────────────────────────┘
```

<div id="extractURLParameters">
  ## extractURLParameterNames
</div>

تم تقديمه في: v1.1.0

يعيد مصفوفة من السلاسل النصية التي تمثل أسماء معلمات URL.
ولا تُفك ترميز القيم.

**البنية**

```sql theme={null}
extractURLParameterNames(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد مصفوفة من السلاسل النصية التي تقابل أسماء معلمات URL. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
```

```response title=Response theme={null}
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2']      │
└──────────────────────────┘
```

<div id="firstSignificantSubdomain">
  ## extractURLParameters
</div>

أُضيفت في: v1.1.0

تعيد مصفوفة من سلاسل `name=value` النصية التي تقابل معلمات URL.
ولا تُفك ترميز القيم.

**البنية**

```sql theme={null}
extractURLParameters(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع مصفوفة من سلاسل `name=value` التي تقابل معلمات URL. [`Array(String)`](/ar/reference/data-types/array)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
```

```response title=Response theme={null}
┌─extractURLParame⋯&param2=value2')─┐
│ ['param1=value1','param2=value2'] │
└───────────────────────────────────┘
```

<div id="firstSignificantSubdomainCustom">
  ## firstSignificantSubdomain
</div>

قُدِّمت في: v1.1.0

تعيد "أول نطاق فرعي مهم".

يُعد أول نطاق فرعي مهم نطاقًا من المستوى الثاني إذا كان 'com' أو 'net' أو 'org' أو 'co'.
وبخلاف ذلك، يكون نطاقًا من المستوى الثالث.

على سبيل المثال، firstSignificantSubdomain('[https://news.clickhouse.com/\&#39](https://news.clickhouse.com/\&#39);) = 'clickhouse'، وfirstSignificantSubdomain('[https://news.clickhouse.com.tr/\&#39](https://news.clickhouse.com.tr/\&#39);) = 'clickhouse'.

قد تتغير في المستقبل قائمة نطاقات المستوى الثاني "غير المهمة" وغيرها من تفاصيل التنفيذ.

**البنية**

```sql theme={null}
firstSignificantSubdomain(url)
```

**المعاملات**

* لا شيء.

**القيمة المعادة**

**أمثلة**

**firstSignificantSubdomain**

```sql title=Query theme={null}
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
```

```response title=Response theme={null}
```

<div id="firstSignificantSubdomainCustomRFC">
  ## firstSignificantSubdomainCustom
</div>

أُضيفت في: v21.1.0

تعيد أول نطاق فرعي مهم من URL باستخدام قائمة TLD المخصّصة. ويشير اسم قائمة TLD المخصّصة إلى إعداد يحدّد لواحق النطاقات التي ينبغي التعامل معها على أنها نطاقات مستوى أعلى. ويكون ذلك مفيدًا لهياكل نطاقات المستوى الأعلى غير القياسية. تستخدم الدالة خوارزمية مبسطة لتحليل URL تفترض إزالة البروتوكول وكل ما يليه.

**الصياغة**

```sql theme={null}
firstSignificantSubdomainCustom(url, tld_list_name)
```

**المعاملات**

* `url` — عنوان URL المراد استخراج النطاق الفرعي منه. [`String`](/ar/reference/data-types/string)
* `tld_list_name` — اسم قائمة TLD المخصّصة من التكوين. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد أول نطاق فرعي مهم. [`String`](/ar/reference/data-types/string)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
```

```response title=Response theme={null}
example
```

<div id="firstSignificantSubdomainRFC">
  ## firstSignificantSubdomainCustomRFC
</div>

قُدِّم في: v22.10.0

مماثل لـ `firstSignificantSubdomainCustom`، لكنه يستخدم تحليل URL متوافقًا مع RFC 3986 بدلًا من الخوارزمية المبسطة.

**الصياغة**

```sql theme={null}
firstSignificantSubdomainCustomRFC(url, tld_list_name)
```

**المعاملات**

* `url` — عنوان URL المراد استخراج النطاق الفرعي منه. [`String`](/ar/reference/data-types/string)
* `tld_list_name` — اسم قائمة TLD المخصصة في التهيئة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد أول نطاق فرعي مهم. [`String`](/ar/reference/data-types/string)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
```

```response title=Response theme={null}
example
```

<div id="fragment">
  ## firstSignificantSubdomainRFC
</div>

استُحدثت في: v22.10.0

تُرجِع "أول نطاق فرعي مهم" وفقًا لـ RFC 1034.

**الصيغة**

```sql theme={null}
firstSignificantSubdomainRFC(url)
```

**المعاملات**

* لا توجد.

**القيمة المُعادة**

**أمثلة**

<div id="netloc">
  ## fragment
</div>

أُضيف في: v1.1.0

يعيد معرّف الجزء من دون رمز # في بدايته.

**الصياغة**

```sql theme={null}
fragment(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد معرّف الجزء من دون رمز # في البداية. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1-create-a-clickhouse-service');
```

```response title=Response theme={null}
┌─fragment('http⋯ouse-service')─┐
│ 1-create-a-clickhouse-service │
└───────────────────────────────┘
```

<div id="path">
  ## netloc
</div>

تم تقديمه في: v20.5.0

يستخرج جزء موقع الشبكة (`username:password@host:port`) من URL.

**البنية**

```sql theme={null}
netloc(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد القيمة `username:password@host:port` من URL محدد. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT netloc('http://paul@www.example.com:80/');
```

```response title=Response theme={null}
┌─netloc('http⋯e.com:80/')─┐
│ paul@www.example.com:80  │
└──────────────────────────┘
```

<div id="pathFull">
  ## path
</div>

أُضيف في: v1.1.0

يعيد المسار من URL بدون سلسلة الاستعلام.

**الصيغة**

```sql theme={null}
path(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع مسار URL من دون سلسلة الاستعلام. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value');
```

```response title=Response theme={null}
┌─path('https://clickhouse.com/en/sql-reference/functions/url-functions/?query=value')─┐
│ /docs/sql-reference/functions/url-functions/                                         │
└──────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="port">
  ## pathFull
</div>

قُدِّم في: v1.1.0

مماثل لـ [`path`](#path)، لكنه يتضمن سلسلة الاستعلام والمقطع من URL.

**الصيغة**

```sql theme={null}
pathFull(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد مسار URL، بما في ذلك سلسلة الاستعلام والجزء التعريفي. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value#section');
```

```response title=Response theme={null}
┌─pathFull('https://clickhouse.com⋯unctions/?query=value#section')─┐
│ /docs/sql-reference/functions/url-functions/?query=value#section │
└──────────────────────────────────────────────────────────────────┘
```

<div id="portRFC">
  ## port
</div>

قُدِّمت في: v20.5.0

تعيد منفذ URL، أو `default_port` إذا كان URL لا يتضمن منفذًا أو تعذّر تحليله.

**الصيغة**

```sql theme={null}
port(url[, default_port])
```

**الوسيطات**

* `url` — URL. [`سلسلة نصية`](/ar/reference/data-types/string)
* `default_port` — اختياري. رقم المنفذ الافتراضي الذي سيتم إرجاعه. القيمة الافتراضية هي `0`. [`UInt16`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُرجع منفذ الـ URL، أو المنفذ الافتراضي إذا لم يكن هناك منفذ في الـ URL أو في حال حدوث خطأ في التحقق. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/docs', 443);
```

```response title=Response theme={null}
┌─port('https://clickhouse.com:8443/docs')─┬─port('https://clickhouse.com/docs', 443)─┐
│                                     8443 │                                      443 │
└──────────────────────────────────────────┴──────────────────────────────────────────┘
```

<div id="protocol">
  ## portRFC
</div>

استُحدث في: v22.10.0

يعيد المنفذ أو `default_port` إذا كان `URL` لا يتضمن منفذًا أو تعذّر تحليله.
مشابه لـ [`port`](#port)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**الصياغة**

```sql theme={null}
portRFC(url[, default_port])
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)
* `default_port` — اختياري. رقم المنفذ الافتراضي الذي سيتم إرجاعه. `0` افتراضيًا. [`UInt16`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يعيد المنفذ أو المنفذ الافتراضي إذا لم يكن هناك منفذ في URL أو في حال حدوث خطأ في التحقق. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:password@example.com:8080/');
```

```response title=Response theme={null}
┌─port('http:/⋯com:8080/')─┬─portRFC('htt⋯com:8080/')─┐
│                        0 │                     8080 │
└──────────────────────────┴──────────────────────────┘
```

<div id="queryString">
  ## protocol
</div>

أُضيف في: v1.1.0

يستخرج البروتوكول من عنوان URL.

أمثلة على القيم المُعادة الشائعة: http, https, ftp, mailto, tel, magnet.

**البنية**

```sql theme={null}
protocol(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد بروتوكول عنوان URL، أو سلسلة فارغة إذا تعذّر تحديده. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT protocol('https://clickhouse.com/');
```

```response title=Response theme={null}
┌─protocol('https://clickhouse.com/')─┐
│ https                               │
└─────────────────────────────────────┘
```

<div id="queryStringAndFragment">
  ## queryString
</div>

أُضيف في: v1.1.0

يعيد جزء الاستعلام من URL بدون علامة الاستفهام الأولى، وبدون `#` وكل ما بعد `#`.

**الصياغة**

```sql theme={null}
queryString(url)
```

**الوسيطات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد سلسلة الاستعلام في URL من دون علامة الاستفهام الأولى والمقطع المرجعي. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT queryString('https://clickhouse.com/docs?query=value&param=123#section');
```

```response title=Response theme={null}
┌─queryString(⋯3#section')─┐
│ query=value&param=123    │
└──────────────────────────┘
```

<div id="topLevelDomain">
  ## queryStringAndFragment
</div>

أُضيف في: v1.1.0

يعيد سلسلة الاستعلام ومُعرّف الجزء في URL.

**البنية**

```sql theme={null}
queryStringAndFragment(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد سلسلة الاستعلام ومُعرّف الجزء في URL. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section');
```

```response title=Response theme={null}
┌─queryStringAnd⋯=123#section')─┐
│ query=value&param=123#section │
└───────────────────────────────┘
```

<div id="topLevelDomainRFC">
  ## topLevelDomain
</div>

قُدِّمت في: v1.1.0

يستخرج نطاق المستوى الأعلى من URL.

<Note>
  يمكن تحديد URL سواء تضمّن بروتوكولًا أم لا.
  على سبيل المثال:

  ```text theme={null}
  svn+ssh://some.svn-hosting.com:80/repo/trunk
  some.svn-hosting.com:80/repo/trunk
  https://clickhouse.com/time/
  ```
</Note>

**البنية**

```sql theme={null}
topLevelDomain(url)
```

**المعاملات**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد اسم النطاق إذا أمكن تفسير سلسلة الإدخال على أنها URL. وإلا، فتعيد سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk');
```

```response title=Response theme={null}
┌─topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')─┐
│ com                                                                │
└────────────────────────────────────────────────────────────────────┘
```

## topLevelDomainRFC

أُضيف في: v22.10.0

يستخرج نطاق المستوى الأعلى من URL.
وهو مشابه لـ [`topLevelDomain`](#topLevelDomain)، لكنه متوافق مع [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986).

**الصياغة**

```sql theme={null}
topLevelDomainRFC(url)
```

**الوسائط**

* `url` — URL. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

اسم النطاق إذا أمكن تحليل سلسلة الإدخال باعتبارها URL. وإلا فستكون سلسلة فارغة. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT topLevelDomain('http://foo:foo%41bar@foo.com'), topLevelDomainRFC('http://foo:foo%41bar@foo.com');
```

```response title=Response theme={null}
┌─topLevelDomain('http://foo:foo%41bar@foo.com')─┬─topLevelDomainRFC('http://foo:foo%41bar@foo.com')─┐
│                                                │ com                                               │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
```
