diff --git a/http/bg/urls.texy b/http/bg/urls.texy index 3ca69df876..648082c060 100644 --- a/http/bg/urls.texy +++ b/http/bg/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Следните методи са достъпни за извличане или промяна на отделни компоненти на URL: +Класът `Url` имплементира интерфейса `JsonSerializable` и предоставя метода `__toString()`, което дава възможност за отпечатване на обекта или използването му с `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Следните методи са достъпни за получаване или промяна на отделни компоненти на URL: .[language-php] | Setter | Getter | Върната стойност @@ -72,7 +83,10 @@ $url = new Url( | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Методът `getDomain(int $level = 2)` връща дясната или лявата страна на хоста. Ето как става това, ако хостът е `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Връща дясната или лявата част на хоста. Ето как работи, ако хостът е `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ $url = new Url( | `getDomain(-3)` | `''` -Класът `Url` имплементира интерфейса `JsonSerializable` и има метод `__toString()`, така че обектът може да бъде отпечатан или използван в данните, предадени на `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Проверява дали два URL адреса са идентични. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Методът `isEqual(string|Url $anotherUrl): bool` проверява дали двата URL адреса са идентични. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Проверява дали даден URL адрес е абсолютен. URL адресът се счита за абсолютен, ако започва със схема (напр. http, https, ftp), последвана от двоеточие. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Нормализира URL пътя, като премахва специалните сегменти `.` и `..`. Този метод премахва излишните елементи на пътя по същия начин, по който го правят браузърите. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Следните методи са достъпни за извличане или промяна на отделни компоненти на URL: +Класът `UrlImmutable` имплементира интерфейса `JsonSerializable` и предоставя метода `__toString()`, който ви позволява да отпечатате обекта или да го използвате с `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Следните методи са достъпни за получаване или промяна на отделни компоненти на URL: .[language-php] | Wither | Getter | Върната стойност @@ -136,6 +177,8 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | пълен URL адрес +Методът `withoutUserInfo()` премахва `user` и `password`. + Можем да работим и с отделни параметри на заявката, като използваме: .[language-php] @@ -144,16 +187,44 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Методът `getDomain(int $level = 2)` работи по същия начин като метода в `Url`. Методът `withoutUserInfo()` премахва `user` и `password`. -Класът `UrlImmutable` имплементира интерфейса `JsonSerializable` и има метод `__toString()`, така че обектът може да бъде отпечатан или използван в данните, предадени на `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Връща дясната или лявата част на хоста. Ето как работи, ако хостът е `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Разрешава абсолютен URL адрес по същия начин, по който браузърът обработва връзките в HTML страница: +- Ако връзката е абсолютен URL адрес (съдържа схема), той се използва непроменен. +- Ако връзката започва с `//`, се прилага само схемата от текущия URL адрес. +- Ако връзката започва с `/`, се създава абсолютен път от корена на домейна. +- В останалите случаи URL адресът се конструира относително към текущия път. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Методът `isEqual(string|Url $anotherUrl): bool` проверява дали двата URL адреса са идентични. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Проверява дали два URL адреса са идентични. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/cs/urls.texy b/http/cs/urls.texy index 8b453d13e2..105cc78fb1 100644 --- a/http/cs/urls.texy +++ b/http/cs/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +Třída `Url` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +Komponenty URL .[method] +------------------------ + Pro vrácení nebo změnu jednotlivých komponent URL jsou vám k dispozici tyto metody: .[language-php] @@ -72,7 +83,10 @@ Můžeme pracovat i s jednotlivými query parametry pomocí: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Tak | `getDomain(-3)` | `''` -Třída `Url` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ověří, zda jsou dvě URL shodné. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Ověřuje, zda je URL absolutní. URL je považována za absolutní, pokud začíná schématem (např. http, https, ftp) následovaným dvojtečkou. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizuje cestu v URL odstraněním speciálních segmentů `.` a `..`. Metoda odstraňuje nadbytečné prvky cesty stejným způsobem, jako to dělají webové prohlížeče. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/cs/?name=param#footer' ``` +Třída `UrlImmutable` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +Komponenty URL .[method] +------------------------ + Pro vrácení nebo změnu jednotlivých komponent URL slouží metody: .[language-php] @@ -136,6 +177,8 @@ Pro vrácení nebo změnu jednotlivých komponent URL slouží metody: | | `getHostUrl(): string` | `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | celá URL +Metoda `withoutUserInfo()` odstraňuje `user` a `password`. + Můžeme pracovat i s jednotlivými query parametry pomocí: .[language-php] @@ -144,16 +187,44 @@ Můžeme pracovat i s jednotlivými query parametry pomocí: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` funguje stejně, jako její jmenovkyně ze třídy `Url`. Metoda `withoutUserInfo()` odstraňuje `user` a `password`. -Třída `UrlImmutable` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Odvozuje absolutní URL stejným způsobem, jakým prohlížeč zpracovává odkazy na HTML stránce: +- pokud je odkaz absolutní URL (obsahuje schéma), použije se beze změny +- pokud odkaz začíná `//`, převezme se pouze schéma z aktuální URL +- pokud odkaz začíná `/`, vytvoří se absolutní cesta od kořene domény +- v ostatních případech se URL sestaví relativně vůči aktuální cestě ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ověří, zda jsou dvě URL shodné. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript diff --git a/http/de/urls.texy b/http/de/urls.texy index 3526ac33b1..a23a4cd1c3 100644 --- a/http/de/urls.texy +++ b/http/de/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Die folgenden Methoden stehen zur Verfügung, um einzelne URL-Komponenten zu erhalten oder zu ändern: +Die Klasse `Url` implementiert die Schnittstelle `JsonSerializable` und stellt die Methode `__toString()` zur Verfügung, die es ermöglicht, das Objekt zu drucken oder mit `json_encode()` zu verwenden. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Die folgenden Methoden sind verfügbar, um einzelne URL-Komponenten zu erhalten oder zu ändern: .[language-php] | Setter | Getter | Rückgabewert @@ -72,7 +83,10 @@ Wir können auch mit einzelnen Abfrageparametern arbeiten: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Die Methode `getDomain(int $level = 2)` gibt den rechten oder linken Teil des Hosts zurück. So funktioniert es, wenn der Host `www.nette.org` ist: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Gibt den rechten oder linken Teil des Hosts zurück. So funktioniert es, wenn der Host `www.nette.org` ist: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Die Methode `getDomain(int $level = 2)` gibt den rechten oder linken Teil des Ho | `getDomain(-3)` | `''` -Die Klasse `Url` implementiert die Schnittstelle `JsonSerializable` und verfügt über eine Methode `__toString()`, damit das Objekt gedruckt oder in Daten verwendet werden kann, die an `json_encode()` übergeben werden. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Prüft, ob zwei URLs identisch sind. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Die Methode `isEqual(string|Url $anotherUrl): bool` prüft, ob die beiden URLs identisch sind. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Prüft, ob eine URL absolut ist. Eine URL gilt als absolut, wenn sie mit einem Schema beginnt (z. B. http, https, ftp), gefolgt von einem Doppelpunkt. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalisiert einen URL-Pfad durch Entfernen der speziellen Segmente `.` und `..`. Diese Methode entfernt überflüssige Pfadelemente auf die gleiche Weise, wie es die Browser tun. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Die folgenden Methoden stehen zur Verfügung, um einzelne URL-Komponenten zu erhalten oder zu ändern: +Die Klasse `UrlImmutable` implementiert die Schnittstelle `JsonSerializable` und stellt die Methode `__toString()` zur Verfügung, mit der Sie das Objekt drucken oder mit `json_encode()` verwenden können. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Die folgenden Methoden sind verfügbar, um einzelne URL-Komponenten zu erhalten oder zu ändern: .[language-php] | Wither | Getter | Rückgabewert @@ -136,7 +177,9 @@ Die folgenden Methoden stehen zur Verfügung, um einzelne URL-Komponenten zu erh | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | vollständige URL -Wir können auch mit einzelnen Abfrageparametern arbeiten: +Bei der Methode `withoutUserInfo()` werden `user` und `password` entfernt. + +Wir können auch mit einzelnen Abfrageparametern arbeiten, indem wir: .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ Wir können auch mit einzelnen Abfrageparametern arbeiten: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Die Methode `getDomain(int $level = 2)` funktioniert genauso wie die Methode in `Url`. Mit der Methode `withoutUserInfo()` werden `user` und `password` entfernt. -Die Klasse `UrlImmutable` implementiert die Schnittstelle `JsonSerializable` und verfügt über eine Methode `__toString()`, damit das Objekt gedruckt oder in Daten verwendet werden kann, die an `json_encode()` übergeben werden. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Gibt den rechten oder linken Teil des Hosts zurück. So funktioniert es, wenn der Host `www.nette.org` ist: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Löst einen absoluten URL in der gleichen Weise auf, wie ein Browser Links auf einer HTML-Seite verarbeitet: +- Wenn der Link ein absoluter URL ist (ein Schema enthält), wird er unverändert verwendet. +- Wenn der Link mit `//` beginnt, wird nur das Schema der aktuellen URL verwendet. +- Beginnt der Link mit `/`, wird ein absoluter Pfad vom Domänenstamm erstellt. +- In anderen Fällen wird die URL relativ zum aktuellen Pfad aufgebaut. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Die Methode `isEqual(string|Url $anotherUrl): bool` prüft, ob die beiden URLs identisch sind. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Prüft, ob zwei URLs identisch sind. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/el/urls.texy b/http/el/urls.texy index 4f4c9fd929..b2b750b40d 100644 --- a/http/el/urls.texy +++ b/http/el/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Οι ακόλουθες μέθοδοι είναι διαθέσιμες για να λάβετε ή να αλλάξετε μεμονωμένα στοιχεία URL: +Η κλάση `Url` υλοποιεί τη διεπαφή `JsonSerializable` και παρέχει τη μέθοδο `__toString()`, καθιστώντας δυνατή την εκτύπωση του αντικειμένου ή τη χρήση του με το `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Οι ακόλουθες μέθοδοι είναι διαθέσιμες για τη λήψη ή την αλλαγή μεμονωμένων στοιχείων URL: .[language-php] | Setter | Getter | Επιστρεφόμενη τιμή @@ -72,7 +83,10 @@ $url = new Url( | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Η μέθοδος `getDomain(int $level = 2)` επιστρέφει το δεξί ή το αριστερό μέρος του κεντρικού υπολογιστή. Έτσι λειτουργεί αν ο κεντρικός υπολογιστής είναι `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Επιστρέφει το δεξί ή το αριστερό μέρος του κεντρικού υπολογιστή. Εδώ είναι πώς λειτουργεί αν ο κεντρικός υπολογιστής είναι `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ $url = new Url( | `getDomain(-3)` | `''` -Η κλάση `Url` υλοποιεί τη διεπαφή `JsonSerializable` και διαθέτει μια μέθοδο `__toString()` ώστε το αντικείμενο να μπορεί να εκτυπωθεί ή να χρησιμοποιηθεί σε δεδομένα που περνούν στο `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ελέγχει αν δύο URL είναι πανομοιότυπα. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Η μέθοδος `isEqual(string|Url $anotherUrl): bool` ελέγχει αν οι δύο διευθύνσεις URL είναι πανομοιότυπες. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Ελέγχει αν μια διεύθυνση URL είναι απόλυτη. Μια διεύθυνση URL θεωρείται απόλυτη αν αρχίζει με ένα σχήμα (π.χ. http, https, ftp) ακολουθούμενο από μια άνω και κάτω τελεία. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Κανονικοποιεί μια διαδρομή URL αφαιρώντας τα ειδικά τμήματα `.` και `..`. Αυτή η μέθοδος αφαιρεί τα περιττά στοιχεία της διαδρομής με τον ίδιο τρόπο που το κάνουν και οι φυλλομετρητές. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Οι ακόλουθες μέθοδοι είναι διαθέσιμες για να λάβετε ή να αλλάξετε μεμονωμένα στοιχεία URL: +Η κλάση `UrlImmutable` υλοποιεί τη διεπαφή `JsonSerializable` και παρέχει τη μέθοδο `__toString()`, επιτρέποντάς σας να εκτυπώσετε το αντικείμενο ή να το χρησιμοποιήσετε με τη μέθοδο `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Οι ακόλουθες μέθοδοι είναι διαθέσιμες για να λαμβάνετε ή να αλλάζετε μεμονωμένα στοιχεία URL: .[language-php] | Wither | Getter | Επιστρεφόμενη τιμή @@ -136,6 +177,8 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | πλήρες URL +Η μέθοδος `withoutUserInfo()` αφαιρεί τα `user` και `password`. + Μπορούμε επίσης να λειτουργήσουμε με μεμονωμένες παραμέτρους ερωτήματος χρησιμοποιώντας: .[language-php] @@ -144,16 +187,44 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Η μέθοδος `getDomain(int $level = 2)` λειτουργεί όπως και η μέθοδος στο `Url`. Η μέθοδος `withoutUserInfo()` αφαιρεί τα `user` και `password`. -Η κλάση `UrlImmutable` υλοποιεί τη διεπαφή `JsonSerializable` και διαθέτει μια μέθοδο `__toString()` ώστε το αντικείμενο να μπορεί να εκτυπωθεί ή να χρησιμοποιηθεί σε δεδομένα που μεταβιβάζονται στο `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Επιστρέφει το δεξί ή το αριστερό μέρος του κεντρικού υπολογιστή. Εδώ είναι πώς λειτουργεί αν ο κεντρικός υπολογιστής είναι `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Επιλύει μια απόλυτη διεύθυνση URL με τον ίδιο τρόπο που ένα πρόγραμμα περιήγησης επεξεργάζεται τους συνδέσμους σε μια σελίδα HTML: +- Εάν ο σύνδεσμος είναι μια απόλυτη διεύθυνση URL (περιέχει ένα σχήμα), χρησιμοποιείται αμετάβλητος. +- Εάν ο σύνδεσμος αρχίζει με `//`, εφαρμόζεται μόνο το σχήμα από την τρέχουσα διεύθυνση URL. +- Εάν ο σύνδεσμος αρχίζει με `/`, δημιουργείται μια απόλυτη διαδρομή από τη ρίζα του τομέα. +- Σε άλλες περιπτώσεις, η διεύθυνση URL κατασκευάζεται σχετικά με την τρέχουσα διαδρομή. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Η μέθοδος `isEqual(string|Url $anotherUrl): bool` ελέγχει αν οι δύο διευθύνσεις URL είναι πανομοιότυπες. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ελέγχει αν δύο διευθύνσεις URL είναι πανομοιότυπες. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/en/urls.texy b/http/en/urls.texy index 61523b3d13..a333b940dd 100644 --- a/http/en/urls.texy +++ b/http/en/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +The `Url` class implements the `JsonSerializable` interface and provides the `__toString()` method, making it possible to print the object or use it with `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + The following methods are available to get or change individual URL components: .[language-php] @@ -72,7 +83,10 @@ We can also operate with individual query parameters using: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Method `getDomain(int $level = 2)` returns the right or left part of the host. This is how it works if the host is `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Returns the right or left part of the host. Here's how it works if the host is `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Method `getDomain(int $level = 2)` returns the right or left part of the host. T | `getDomain(-3)` | `''` -The `Url` class implements the `JsonSerializable` interface and has a `__toString()` method so that the object can be printed or used in data passed to `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Checks if two URLs are identical. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Method `isEqual(string|Url $anotherUrl): bool` tests whether the two URLs are identical. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Checks if a URL is absolute. A URL is considered absolute if it begins with a scheme (e.g., http, https, ftp) followed by a colon. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizes a URL path by removing special segments `.` and `..`. This method removes redundant path elements the same way browsers do. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/cs/?name=param#footer' ``` +The `UrlImmutable` class implements the `JsonSerializable` interface and provides the `__toString()` method, allowing you to print the object or use it with `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + The following methods are available to get or change individual URL components: .[language-php] @@ -136,6 +177,8 @@ The following methods are available to get or change individual URL components: | | `getHostUrl(): string` | `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | full URL +The `withoutUserInfo()` method removes `user` and `password`. + We can also operate with individual query parameters using: .[language-php] @@ -144,16 +187,44 @@ We can also operate with individual query parameters using: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -The `getDomain(int $level = 2)` method works the same as the method in `Url`. Method `withoutUserInfo()` removes `user` and `password`. -The `UrlImmutable` class implements the `JsonSerializable` interface and has a `__toString()` method so that the object can be printed or used in data passed to `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Returns the right or left part of the host. Here's how it works if the host is `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Resolves an absolute URL in the same way a browser processes links on an HTML page: +- If the link is an absolute URL (contains a scheme), it is used unchanged. +- If the link begins with `//`, only the scheme from the current URL is applied. +- If the link begins with `/`, an absolute path from the domain root is created. +- In other cases, the URL is constructed relative to the current path. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Method `isEqual(string|Url $anotherUrl): bool` tests whether the two URLs are identical. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Checks if two URLs are identical. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript diff --git a/http/es/urls.texy b/http/es/urls.texy index b0e53b67ec..731a44ac4b 100644 --- a/http/es/urls.texy +++ b/http/es/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Los siguientes métodos están disponibles para obtener o cambiar componentes individuales de la URL: +La clase `Url` implementa la interfaz `JsonSerializable` y proporciona el método `__toString()`, que permite imprimir el objeto o utilizarlo con `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Los siguientes métodos están disponibles para obtener o cambiar componentes URL individuales: .[language-php] | Setter | Getter | Valor devuelto @@ -72,7 +83,10 @@ También podemos operar con parámetros de consulta individuales utilizando: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -El método `getDomain(int $level = 2)` devuelve la parte derecha o izquierda del host. Así funciona si el host es `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Devuelve la parte derecha o izquierda del host. Así es como funciona si el host es `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ El método `getDomain(int $level = 2)` devuelve la parte derecha o izquierda del | `getDomain(-3)` | `''` -La clase `Url` implementa la interfaz `JsonSerializable` y tiene un método `__toString()` para que el objeto pueda imprimirse o utilizarse en datos pasados a `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Comprueba si dos URL son idénticas. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -El método `isEqual(string|Url $anotherUrl): bool` comprueba si las dos URL son idénticas. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Comprueba si una URL es absoluta. Una URL se considera absoluta si comienza con un esquema (por ejemplo, http, https, ftp) seguido de dos puntos. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normaliza una ruta URL eliminando los segmentos especiales `.` y `..`. Este método elimina los elementos redundantes de la ruta del mismo modo que lo hacen los navegadores. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +La clase `UrlImmutable` implementa la interfaz `JsonSerializable` y proporciona el método `__toString()`, que permite imprimir el objeto o utilizarlo con `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Los siguientes métodos están disponibles para obtener o cambiar componentes URL individuales: .[language-php] @@ -136,6 +177,8 @@ Los siguientes métodos están disponibles para obtener o cambiar componentes UR | | `getHostUrl(): string` | `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | URL completa +El método `withoutUserInfo()` elimina `user` y `password`. + También podemos operar con parámetros de consulta individuales utilizando: .[language-php] @@ -144,16 +187,44 @@ También podemos operar con parámetros de consulta individuales utilizando: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -El método `getDomain(int $level = 2)` funciona igual que el método en `Url`. El método `withoutUserInfo()` elimina `user` y `password`. -La clase `UrlImmutable` implementa la interfaz `JsonSerializable` y tiene un método `__toString()` para que el objeto pueda imprimirse o utilizarse en datos pasados a `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Devuelve la parte derecha o izquierda del host. Así es como funciona si el host es `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Resuelve una URL absoluta del mismo modo que un navegador procesa los enlaces de una página HTML: +- Si el enlace es una URL absoluta (contiene un esquema), se utiliza sin cambios. +- Si el enlace empieza por `//`, sólo se aplica el esquema de la URL actual. +- Si el enlace comienza por `/`, se crea una ruta absoluta desde la raíz del dominio. +- En los demás casos, la URL se construye en relación con la ruta actual. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -El método `isEqual(string|Url $anotherUrl): bool` comprueba si las dos URL son idénticas. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Comprueba si dos URL son idénticas. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/fr/urls.texy b/http/fr/urls.texy index 6340d5b64c..1bd3eb0576 100644 --- a/http/fr/urls.texy +++ b/http/fr/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Les méthodes suivantes sont disponibles pour obtenir ou modifier des composants individuels de l'URL : +La classe `Url` implémente l'interface `JsonSerializable` et fournit la méthode `__toString()`, ce qui permet d'imprimer l'objet ou de l'utiliser avec `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Les méthodes suivantes permettent d'obtenir ou de modifier des composants URL individuels : .[language-php] | Setter | Getter | Valeur retournée @@ -72,7 +83,10 @@ Nous pouvons également opérer avec des paramètres de requête individuels en | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -La méthode `getDomain(int $level = 2)` renvoie la partie droite ou gauche de l'hôte. Voici comment cela fonctionne si l'hôte est `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Renvoie la partie droite ou gauche de l'hôte. Voici comment cela fonctionne si l'hôte est `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ La méthode `getDomain(int $level = 2)` renvoie la partie droite ou gauche de l' | `getDomain(-3)` | `''` -La classe `Url` implémente l'interface `JsonSerializable` et possède une méthode `__toString()` afin que l'objet puisse être imprimé ou utilisé dans les données transmises à `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Vérifie si deux URL sont identiques. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -La méthode `isEqual(string|Url $anotherUrl): bool` teste si les deux URL sont identiques. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Vérifie si un URL est absolu. Une URL est considérée comme absolue si elle commence par un schéma (par exemple, http, https, ftp) suivi de deux points. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalise un chemin d'accès URL en supprimant les segments spéciaux `.` et `..`. Cette méthode supprime les éléments redondants du chemin d'accès de la même manière que le font les navigateurs. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/fr/?name=param#footer' ``` -Les méthodes suivantes sont disponibles pour obtenir ou modifier des composants individuels d'URL : +La classe `UrlImmutable` implémente l'interface `JsonSerializable` et fournit la méthode `__toString()`, ce qui vous permet d'imprimer l'objet ou de l'utiliser avec `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Les méthodes suivantes permettent d'obtenir ou de modifier des composants URL individuels : .[language-php] | Wither | Getter | Valeur retournée @@ -136,7 +177,9 @@ Les méthodes suivantes sont disponibles pour obtenir ou modifier des composants | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | URL complète -Nous pouvons également opérer avec des paramètres de requête individuels en utilisant : +La méthode `withoutUserInfo()` supprime `user` et `password`. + +Nous pouvons également utiliser des paramètres de requête individuels à l'aide de la méthode : .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ Nous pouvons également opérer avec des paramètres de requête individuels en | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -La méthode `getDomain(int $level = 2)` fonctionne de la même manière que la méthode `Url`. La méthode `withoutUserInfo()` supprime `user` et `password`. -La classe `UrlImmutable` implémente l'interface `JsonSerializable` et possède une méthode `__toString()` afin que l'objet puisse être imprimé ou utilisé dans les données transmises à `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Renvoie la partie droite ou gauche de l'hôte. Voici comment cela fonctionne si l'hôte est `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Résout une URL absolue de la même manière qu'un navigateur traite les liens sur une page HTML : +- Si le lien est une URL absolue (contenant un schéma), il est utilisé tel quel. +- Si le lien commence par `//`, seul le schéma de l'URL actuelle est appliqué. +- Si le lien commence par `/`, un chemin absolu à partir de la racine du domaine est créé. +- Dans les autres cas, l'URL est construite par rapport au chemin actuel. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -La méthode `isEqual(string|Url $anotherUrl): bool` teste si les deux URL sont identiques. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Vérifie si deux URL sont identiques. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/hu/urls.texy b/http/hu/urls.texy index b39ac25fa1..c80592f326 100644 --- a/http/hu/urls.texy +++ b/http/hu/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -A következő módszerek állnak rendelkezésre az egyes URL-komponensek lekérdezéséhez vagy módosításához: +A `Url` osztály megvalósítja a `JsonSerializable` interfészt, és biztosítja a `__toString()` metódust, ami lehetővé teszi az objektum nyomtatását vagy a `json_encode()` segítségével történő használatát. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +A következő metódusok az egyes URL-komponensek lekérdezésére vagy módosítására állnak rendelkezésre: .[language-php] | Setter | Getter | Visszatérő érték @@ -72,7 +83,10 @@ Az egyes lekérdezési paraméterekkel is operálhatunk a következőkkel: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -A `getDomain(int $level = 2)` metódus a gazdatest jobb vagy bal oldalát adja vissza. Így működik, ha az állomás a `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Visszaadja a gazdatest jobb vagy bal oldalát. Így működik, ha a host a `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ A `getDomain(int $level = 2)` metódus a gazdatest jobb vagy bal oldalát adja v | `getDomain(-3)` | `''` -A `Url` osztály megvalósítja a `JsonSerializable` interfészt, és rendelkezik egy `__toString()` metódussal, hogy az objektumot ki lehessen nyomtatni, vagy felhasználni a `json_encode()`-nak átadott adatokban. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ellenőrzi, hogy két URL azonos-e. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -A `isEqual(string|Url $anotherUrl): bool` metódus azt vizsgálja, hogy a két URL azonos-e. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Ellenőrzi, hogy egy URL abszolút-e. Egy URL akkor tekinthető abszolútnak, ha egy sémával kezdődik (pl. http, https, ftp), amelyet kettőspont követ. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizálja az URL-útvonalat a `.` és a `..` speciális szegmensek eltávolításával. Ez a módszer a böngészőkhöz hasonlóan eltávolítja a felesleges útvonalelemeket. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -A következő metódusok állnak rendelkezésre az egyes URL-összetevők kinyerésére vagy megváltoztatására: +A `UrlImmutable` osztály megvalósítja a `JsonSerializable` interfészt, és biztosítja a `__toString()` metódust, amely lehetővé teszi az objektum nyomtatását vagy a `json_encode()` segítségével történő használatát. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +A következő metódusok állnak rendelkezésre az egyes URL-összetevők kinyeréséhez vagy módosításához: .[language-php] | Wither | Getter | Visszaadott érték @@ -136,6 +177,8 @@ A következő metódusok állnak rendelkezésre az egyes URL-összetevők kinyer | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | teljes URL +A `withoutUserInfo()` módszer eltávolítja a `user` és a `password` címet. + Az egyes lekérdezési paraméterekkel is operálhatunk a következőkkel: .[language-php] @@ -144,16 +187,44 @@ Az egyes lekérdezési paraméterekkel is operálhatunk a következőkkel: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -A `getDomain(int $level = 2)` módszer ugyanúgy működik, mint a `Url` módszer. A `withoutUserInfo()` módszer eltávolítja a `user` és a `password` címet. -A `UrlImmutable` osztály megvalósítja a `JsonSerializable` interfészt, és rendelkezik egy `__toString()` metódussal, hogy az objektumot ki lehessen nyomtatni, vagy fel lehessen használni a `json_encode()`-nak átadott adatokban. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Visszaadja a gazdatest jobb vagy bal oldalát. Így működik, ha a host a `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Feloldja az abszolút URL-címeket ugyanúgy, ahogyan a böngésző feldolgozza a HTML-oldalon található hivatkozásokat: +- Ha a hivatkozás abszolút URL (tartalmaz egy sémát), akkor azt változatlanul használja. +- Ha a hivatkozás `//`-val kezdődik, csak az aktuális URL sémáját alkalmazza a rendszer. +- Ha a hivatkozás `/`-val kezdődik, akkor a rendszer a tartomány gyökeréből kiinduló abszolút elérési utat hoz létre. +- Egyéb esetekben az URL az aktuális elérési úthoz képest kerül kialakításra. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -A `isEqual(string|Url $anotherUrl): bool` metódus azt vizsgálja, hogy a két URL azonos-e. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ellenőrzi, hogy két URL azonos-e. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/it/urls.texy b/http/it/urls.texy index 434e067515..f0133fdbac 100644 --- a/http/it/urls.texy +++ b/http/it/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Per ottenere o modificare singoli componenti dell'URL sono disponibili i seguenti metodi: +La classe `Url` implementa l'interfaccia `JsonSerializable` e fornisce il metodo `__toString()`, che consente di stampare l'oggetto o di utilizzarlo con `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +I seguenti metodi sono disponibili per ottenere o modificare singoli componenti dell'URL: .[language-php] | Setter | Getter | Valore restituito @@ -72,7 +83,10 @@ Possiamo anche operare con singoli parametri di query utilizzando: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Il metodo `getDomain(int $level = 2)` restituisce la parte destra o sinistra dell'host. Funziona così se l'host è `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Restituisce la parte destra o sinistra dell'host. Ecco come funziona se l'host è `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Il metodo `getDomain(int $level = 2)` restituisce la parte destra o sinistra del | `getDomain(-3)` | `''` -La classe `Url` implementa l'interfaccia `JsonSerializable` e ha un metodo `__toString()` che consente di stampare l'oggetto o di utilizzarlo nei dati passati a `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Verifica se due URL sono identici. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Il metodo `isEqual(string|Url $anotherUrl): bool` verifica se i due URL sono identici. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Verifica se un URL è assoluto. Un URL è considerato assoluto se inizia con uno schema (ad esempio, http, https, ftp) seguito da due punti. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizza un percorso URL rimuovendo i segmenti speciali `.` e `..`. Questo metodo rimuove gli elementi ridondanti del percorso come fanno i browser. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +La classe `UrlImmutable` implementa l'interfaccia `JsonSerializable` e fornisce il metodo `__toString()`, che consente di stampare l'oggetto o di utilizzarlo con `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + I seguenti metodi sono disponibili per ottenere o modificare singoli componenti dell'URL: .[language-php] @@ -136,7 +177,9 @@ I seguenti metodi sono disponibili per ottenere o modificare singoli componenti | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | URL completo -Possiamo anche operare con singoli parametri di query utilizzando: +Il metodo `withoutUserInfo()` rimuove `user` e `password`. + +Possiamo anche operare con i singoli parametri della query utilizzando: .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ Possiamo anche operare con singoli parametri di query utilizzando: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Il metodo `getDomain(int $level = 2)` funziona come il metodo in `Url`. Il metodo `withoutUserInfo()` rimuove `user` e `password`. -La classe `UrlImmutable` implementa l'interfaccia `JsonSerializable` e ha un metodo `__toString()` che consente di stampare l'oggetto o di utilizzarlo nei dati passati a `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Restituisce la parte destra o sinistra dell'host. Ecco come funziona se l'host è `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Risolve un URL assoluto nello stesso modo in cui un browser elabora i collegamenti in una pagina HTML: +- Se il link è un URL assoluto (contiene uno schema), viene utilizzato senza modifiche. +- Se il link inizia con `//`, viene applicato solo lo schema dell'URL corrente. +- Se il collegamento inizia con `/`, viene creato un percorso assoluto dalla radice del dominio. +- Negli altri casi, l'URL viene costruito relativamente al percorso corrente. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Il metodo `isEqual(string|Url $anotherUrl): bool` verifica se i due URL sono identici. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Controlla se due URL sono identici. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/pl/urls.texy b/http/pl/urls.texy index 031cfbc265..e01aa225a8 100644 --- a/http/pl/urls.texy +++ b/http/pl/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Aby zwrócić lub zmienić poszczególne składniki adresu URL, dostępne są następujące metody: +Klasa `Url` implementuje interfejs `JsonSerializable` i udostępnia metodę `__toString()`, umożliwiając drukowanie obiektu lub używanie go z `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Następujące metody są dostępne w celu uzyskania lub zmiany poszczególnych komponentów URL: .[language-php] | Setter | Getter | Wartość zwrotna @@ -72,7 +83,10 @@ Możemy również pracować z poszczególnymi parametrami zapytania za pomocą: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` zwraca prawą lub lewą część hosta. Działa to, jeśli host jest `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Zwraca prawą lub lewą część hosta. Oto jak to działa, jeśli hostem jest `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Metoda `getDomain(int $level = 2)` zwraca prawą lub lewą część hosta. Dzia | `getDomain(-3)` | `''` -Klasa `Url` implementuje interfejs `JsonSerializable` i posiada metodę `__toString()`, dzięki czemu obiekt może zostać zrzucony lub wykorzystany w danych przekazywanych do `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Sprawdza, czy dwa adresy URL są identyczne. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Metoda `isEqual(string|Url $anotherUrl): bool` sprawdza, czy dwa adresy URL są takie same. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Sprawdza, czy adres URL jest bezwzględny. Adres URL jest uważany za bezwzględny, jeśli zaczyna się od schematu (np. http, https, ftp), po którym następuje dwukropek. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizuje ścieżkę URL poprzez usunięcie specjalnych segmentów `.` i `..`. Ta metoda usuwa zbędne elementy ścieżki w taki sam sposób, jak robią to przeglądarki. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Metody służą do zwracania lub zmiany poszczególnych elementów adresu URL: +Klasa `UrlImmutable` implementuje interfejs `JsonSerializable` i udostępnia metodę `__toString()`, umożliwiając drukowanie obiektu lub używanie go z `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Następujące metody są dostępne w celu uzyskania lub zmiany poszczególnych komponentów URL: .[language-php] | Wither | Getter | Wartość zwrotna @@ -136,7 +177,9 @@ Metody służą do zwracania lub zmiany poszczególnych elementów adresu URL: | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | pełny adres URL -Możemy również pracować z poszczególnymi parametrami zapytania za pomocą: +Metoda `withoutUserInfo()` usuwa `user` i `password`. + +Możemy również operować na poszczególnych parametrach zapytania za pomocą: .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ Możemy również pracować z poszczególnymi parametrami zapytania za pomocą: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` działa tak samo jak jej imienniczka klasa `Url`. Metoda `withoutUserInfo()` usuwa `user` i `password`. -Klasa `UrlImmutable` implementuje interfejs `JsonSerializable` i posiada metodę `__toString()`, dzięki czemu obiekt może zostać zrzucony lub wykorzystany w danych przekazywanych do `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Zwraca prawą lub lewą część hosta. Oto jak to działa, jeśli hostem jest `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Rozwiązuje bezwzględny adres URL w taki sam sposób, w jaki przeglądarka przetwarza łącza na stronie HTML: +- Jeśli link jest bezwzględnym adresem URL (zawiera schemat), jest on używany bez zmian. +- Jeśli łącze zaczyna się od `//`, stosowany jest tylko schemat z bieżącego adresu URL. +- Jeśli łącze zaczyna się od `/`, tworzona jest bezwzględna ścieżka z katalogu głównego domeny. +- W innych przypadkach adres URL jest konstruowany względem bieżącej ścieżki. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Metoda `isEqual(string|Url $anotherUrl): bool` sprawdza, czy dwa adresy URL są takie same. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Sprawdza, czy dwa adresy URL są identyczne. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/pt/urls.texy b/http/pt/urls.texy index 820671e9c0..5c7eccd26f 100644 --- a/http/pt/urls.texy +++ b/http/pt/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Os seguintes métodos estão disponíveis para obter ou alterar os componentes individuais da URL: +A classe `Url` implementa a interface `JsonSerializable` e fornece o método `__toString()`, possibilitando a impressão do objeto ou seu uso com `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Os métodos a seguir estão disponíveis para obter ou alterar componentes individuais de URL: .[language-php] | Setter| Getter| Valor devolvido @@ -72,7 +83,10 @@ Também podemos operar com parâmetros de consulta individuais usando: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -O método `getDomain(int $level = 2)` retorna a parte direita ou esquerda do anfitrião. É assim que funciona se o anfitrião for `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Retorna a parte direita ou esquerda do host. Veja como isso funciona se o host for `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ O método `getDomain(int $level = 2)` retorna a parte direita ou esquerda do anf | `getDomain(-3)` | `''` -A classe `Url` implementa a interface `JsonSerializable` e tem um método `__toString()` para que o objeto possa ser impresso ou usado em dados passados para `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Verifica se dois URLs são idênticos. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -O método `isEqual(string|Url $anotherUrl): bool` testa se as duas URLs são idênticas. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Verifica se um URL é absoluto. Um URL é considerado absoluto se começar com um esquema (por exemplo, http, https, ftp) seguido de dois pontos. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normaliza um caminho de URL removendo os segmentos especiais `.` e `..`. Esse método remove elementos de caminho redundantes da mesma forma que os navegadores fazem. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Os seguintes métodos estão disponíveis para obter ou alterar os componentes individuais da URL: +A classe `UrlImmutable` implementa a interface `JsonSerializable` e fornece o método `__toString()`, permitindo que você imprima o objeto ou o use com `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Os métodos a seguir estão disponíveis para obter ou alterar componentes individuais de URL: .[language-php] | Wither| Getter| Valor devolvido @@ -136,6 +177,8 @@ Os seguintes métodos estão disponíveis para obter ou alterar os componentes i | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | URL completa +O método `withoutUserInfo()` remove `user` e `password`. + Também podemos operar com parâmetros de consulta individuais usando: .[language-php] @@ -144,16 +187,44 @@ Também podemos operar com parâmetros de consulta individuais usando: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -O método `getDomain(int $level = 2)` funciona da mesma forma que o método em `Url`. O método `withoutUserInfo()` remove `user` e `password`. -A classe `UrlImmutable` implementa a interface `JsonSerializable` e tem um método `__toString()` para que o objeto possa ser impresso ou usado em dados passados para `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Retorna a parte direita ou esquerda do host. Veja como isso funciona se o host for `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Resolve um URL absoluto da mesma forma que um navegador processa links em uma página HTML: +- Se o link for um URL absoluto (contém um esquema), ele será usado sem alterações. +- Se o link começar com `//`, somente o esquema do URL atual será aplicado. +- Se o link começar com `/`, será criado um caminho absoluto a partir da raiz do domínio. +- Em outros casos, o URL é construído em relação ao caminho atual. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -O método `isEqual(string|Url $anotherUrl): bool` testa se as duas URLs são idênticas. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Verifica se dois URLs são idênticos. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/ro/urls.texy b/http/ro/urls.texy index 4330b9aa92..81347c04c3 100644 --- a/http/ro/urls.texy +++ b/http/ro/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +Clasa `Url` implementează interfața `JsonSerializable` și furnizează metoda `__toString()`, făcând posibilă imprimarea obiectului sau utilizarea acestuia cu `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Următoarele metode sunt disponibile pentru a obține sau a modifica componente URL individuale: .[language-php] @@ -72,7 +83,10 @@ De asemenea, putem opera cu parametri de interogare individuali folosind: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` returnează partea dreaptă sau stângă a gazdei. Iată cum funcționează dacă gazda este `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Returnează partea dreaptă sau stângă a gazdei. Iată cum funcționează dacă gazda este `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Metoda `getDomain(int $level = 2)` returnează partea dreaptă sau stângă a ga | `getDomain(-3)` | `''` -Clasa `Url` implementează interfața `JsonSerializable` și are o metodă `__toString()`, astfel încât obiectul poate fi tipărit sau utilizat în datele transmise către `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Verifică dacă două URL-uri sunt identice. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Metoda `isEqual(string|Url $anotherUrl): bool` testează dacă cele două URL-uri sunt identice. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Verifică dacă un URL este absolut. Un URL este considerat absolut dacă începe cu o schemă (de exemplu, http, https, ftp) urmată de două puncte. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizează o cale URL prin eliminarea segmentelor speciale `.` și `..`. Această metodă elimină elementele redundante ale căii în același mod în care o fac browserele. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +Clasa `UrlImmutable` implementează interfața `JsonSerializable` și furnizează metoda `__toString()`, permițându-vă să tipăriți obiectul sau să îl utilizați cu `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Următoarele metode sunt disponibile pentru a obține sau a modifica componente URL individuale: .[language-php] @@ -136,7 +177,9 @@ Wither | Getter | Getter | Valoare returnată | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | URL complet -De asemenea, putem opera cu parametri de interogare individuali folosind: +Metoda `withoutUserInfo()` elimină `user` și `password`. + +De asemenea, putem opera cu parametrii de interogare individuali utilizând: .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ De asemenea, putem opera cu parametri de interogare individuali folosind: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` funcționează la fel ca și metoda din `Url`. Metoda `withoutUserInfo()` elimină `user` și `password`. -Clasa `UrlImmutable` implementează interfața `JsonSerializable` și are o metodă `__toString()` pentru ca obiectul să poată fi tipărit sau utilizat în datele transmise către `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Returnează partea dreaptă sau stângă a gazdei. Iată cum funcționează dacă gazda este `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Rezolvă un URL absolut în același mod în care un browser procesează linkurile de pe o pagină HTML: +- Dacă link-ul este un URL absolut (conține o schemă), acesta este utilizat neschimbat. +- Dacă legătura începe cu `//`, se aplică numai schema din URL-ul curent. +- Dacă legătura începe cu `/`, se creează o cale absolută de la rădăcina domeniului. +- În celelalte cazuri, URL-ul este construit relativ la calea curentă. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Metoda `isEqual(string|Url $anotherUrl): bool` testează dacă cele două URL-uri sunt identice. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Verifică dacă două URL-uri sunt identice. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/ru/urls.texy b/http/ru/urls.texy index b8a5c275bb..8ac383c270 100644 --- a/http/ru/urls.texy +++ b/http/ru/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +Класс `Url` реализует интерфейс `JsonSerializable` и предоставляет метод `__toString()`, позволяющий распечатать объект или использовать его с помощью `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Для получения или изменения отдельных компонентов URL доступны следующие методы: .[language-php] @@ -72,7 +83,10 @@ $url = new Url( | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Метод `getDomain(int $level = 2)` возвращает правую или левую часть хоста. Вот как это работает, если хост - `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Возвращает правую или левую часть хоста. Вот как это работает, если хост - `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ $url = new Url( | `getDomain(-3)` | `''` -Класс `Url` реализует интерфейс `JsonSerializable` и имеет метод `__toString()`, чтобы объект можно было распечатать или использовать в данных, передаваемых в `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Проверяет, идентичны ли два URL-адреса. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Метод `isEqual(string|Url $anotherUrl): bool` проверяет, идентичны ли два URL. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Проверяет, является ли URL-адрес абсолютным. URL считается абсолютным, если он начинается со схемы (например, http, https, ftp), за которой следует двоеточие. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Нормализует путь URL, удаляя специальные сегменты `.` и `..`. Этот метод удаляет лишние элементы пути так же, как это делают браузеры. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +Класс `UrlImmutable` реализует интерфейс `JsonSerializable` и предоставляет метод `__toString()`, позволяющий распечатать объект или использовать его с помощью `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Для получения или изменения отдельных компонентов URL доступны следующие методы: .[language-php] @@ -136,6 +177,8 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | полный URL +Метод `withoutUserInfo()` удаляет `user` и `password`. + Мы также можем работать с отдельными параметрами запроса, используя: .[language-php] @@ -144,16 +187,44 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | | `getQueryParameter(string $name)` -Метод `getDomain(int $level = 2)` работает так же, как и метод в `Url`. Метод `withoutUserInfo()` удаляет `user` и `password`. -Класс `UrlImmutable` реализует интерфейс `JsonSerializable` и имеет метод `__toString()`, чтобы объект можно было распечатать или использовать в данных, передаваемых в `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Возвращает правую или левую часть хоста. Вот как это работает, если хост - `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Разрешает абсолютный URL-адрес так же, как браузер обрабатывает ссылки на HTML-странице: +- Если ссылка является абсолютным URL (содержит схему), она используется без изменений. +- Если ссылка начинается с `//`, применяется только схема из текущего URL. +- Если ссылка начинается с `/`, создается абсолютный путь от корня домена. +- В остальных случаях URL строится относительно текущего пути. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Метод `isEqual(string|Url $anotherUrl): bool` проверяет, идентичны ли два URL. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Проверяет, являются ли два URL одинаковыми. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/sl/urls.texy b/http/sl/urls.texy index 90e7305095..eacb1d7981 100644 --- a/http/sl/urls.texy +++ b/http/sl/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +Razred `Url` implementira vmesnik `JsonSerializable` in zagotavlja metodo `__toString()`, ki omogoča tiskanje predmeta ali njegovo uporabo z `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Za pridobivanje ali spreminjanje posameznih komponent URL so na voljo naslednje metode: .[language-php] @@ -72,7 +83,10 @@ S posameznimi parametri poizvedbe lahko operiramo tudi z uporabo: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` vrne desni ali levi del gostitelja. Tako deluje, če je gostitelj `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrne desni ali levi del gostitelja. Če je gostitelj `www.nette.org`, je prikazano naslednje delovanje: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Metoda `getDomain(int $level = 2)` vrne desni ali levi del gostitelja. Tako delu | `getDomain(-3)` | `''` -Razred `Url` implementira vmesnik `JsonSerializable` in ima metodo `__toString()`, tako da se lahko objekt natisne ali uporabi v podatkih, posredovanih `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Preveri, ali sta dva naslova URL enaka. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Metoda `isEqual(string|Url $anotherUrl): bool` preveri, ali sta naslova URL enaka. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Preveri, ali je naslov URL absoluten. URL se šteje za absolutnega, če se začne s shemo (npr. http, https, ftp), ki ji sledi dvopičje. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Normalizira pot URL z odstranitvijo posebnih segmentov `.` in `..`. Ta metoda odstrani odvečne elemente poti na enak način kot brskalniki. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +Razred `UrlImmutable` implementira vmesnik `JsonSerializable` in zagotavlja metodo `__toString()`, ki omogoča tiskanje predmeta ali njegovo uporabo z `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Za pridobivanje ali spreminjanje posameznih komponent URL so na voljo naslednje metode: .[language-php] @@ -136,6 +177,8 @@ Za pridobivanje ali spreminjanje posameznih komponent URL so na voljo naslednje | | `getHostUrl(): string`| `http://nette.org:8080'` | | `getAbsoluteUrl(): string` | polni URL +Metoda `withoutUserInfo()` odstrani `user` in `password`. + S posameznimi parametri poizvedbe lahko operiramo tudi z uporabo: .[language-php] @@ -144,16 +187,44 @@ S posameznimi parametri poizvedbe lahko operiramo tudi z uporabo: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` deluje enako kot metoda v `Url`. Metoda `withoutUserInfo()` odstrani `user` in `password`. -Razred `UrlImmutable` implementira vmesnik `JsonSerializable` in ima metodo `__toString()`, tako da se lahko objekt natisne ali uporabi v podatkih, posredovanih v `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrne desni ali levi del gostitelja. Če je gostitelj `www.nette.org`, je prikazano naslednje delovanje: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Absolutni naslov URL rešuje na enak način, kot brskalnik obdeluje povezave na strani HTML: +- Če je povezava absolutni URL (vsebuje shemo), se uporabi nespremenjena. +- Če se povezava začne s `//`, se uporabi samo shema iz trenutnega URL-ja. +- Če se povezava začne s `/`, se ustvari absolutna pot iz korena domene. +- V drugih primerih se URL ustvari relativno glede na trenutno pot. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Metoda `isEqual(string|Url $anotherUrl): bool` preveri, ali sta naslova URL enaka. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Preveri, ali sta dva naslova URL enaka. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/tr/urls.texy b/http/tr/urls.texy index 46a2cfb5c1..469f2761c6 100644 --- a/http/tr/urls.texy +++ b/http/tr/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +`Url` sınıfı, `JsonSerializable` arayüzünü uygular ve `__toString()` yöntemini sağlayarak nesneyi yazdırmayı veya `json_encode()` ile kullanmayı mümkün kılar. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Tek tek URL bileşenlerini almak veya değiştirmek için aşağıdaki yöntemler kullanılabilir: .[language-php] @@ -72,7 +83,10 @@ Ayrıca tek tek sorgu parametreleri ile de işlem yapabiliriz: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -`getDomain(int $level = 2)` yöntemi, ana bilgisayarın sağ veya sol kısmını döndürür. Ana bilgisayar `www.nette.org` ise bu şekilde çalışır: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Ana bilgisayarın sağ veya sol kısmını döndürür. Ana bilgisayar `www.nette.org` ise şu şekilde çalışır: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ Ayrıca tek tek sorgu parametreleri ile de işlem yapabiliriz: | `getDomain(-3)` | `''` -`Url` sınıfı, `JsonSerializable` arayüzünü uygular ve nesnenin yazdırılabilmesi veya `json_encode()` adresine aktarılan verilerde kullanılabilmesi için bir `__toString()` yöntemine sahiptir. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +İki URL'nin aynı olup olmadığını kontrol eder. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Yöntem `isEqual(string|Url $anotherUrl): bool` iki URL'nin aynı olup olmadığını test eder. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Bir URL'nin mutlak olup olmadığını kontrol eder. Bir URL, bir şema (örn. http, https, ftp) ve ardından iki nokta üst üste ile başlıyorsa mutlak olarak kabul edilir. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- + `.` ve `..` özel segmentlerini kaldırarak bir URL yolunu normalleştirir. Bu yöntem, tarayıcıların yaptığı gibi gereksiz yol öğelerini kaldırır. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` +`UrlImmutable` sınıfı, `JsonSerializable` arayüzünü uygular ve nesneyi yazdırmanıza veya `json_encode()` ile kullanmanıza olanak tanıyan `__toString()` yöntemini sağlar. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + Tek tek URL bileşenlerini almak veya değiştirmek için aşağıdaki yöntemler kullanılabilir: .[language-php] @@ -136,7 +177,9 @@ Tek tek URL bileşenlerini almak veya değiştirmek için aşağıdaki yöntemle | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | tam URL -Ayrıca tek tek sorgu parametreleri ile de işlem yapabiliriz: +`withoutUserInfo()` yöntemi `user` ve `password` adreslerini kaldırır. + +Ayrıca kullanarak tek tek sorgu parametreleri ile de işlem yapabiliriz: .[language-php] | Solan | Getter @@ -144,16 +187,44 @@ Ayrıca tek tek sorgu parametreleri ile de işlem yapabiliriz: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -`getDomain(int $level = 2)` yöntemi `Url`'daki yöntemle aynı şekilde çalışır. `withoutUserInfo()` yöntemi `user` ve `password` adreslerini kaldırır. -`UrlImmutable` sınıfı, `JsonSerializable` arayüzünü uygular ve nesnenin yazdırılabilmesi veya `json_encode()` adresine aktarılan verilerde kullanılabilmesi için bir `__toString()` yöntemine sahiptir. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Ana bilgisayarın sağ veya sol kısmını döndürür. Ana bilgisayar `www.nette.org` ise şu şekilde çalışır: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Mutlak bir URL'yi, bir tarayıcının HTML sayfasındaki bağlantıları işlediği şekilde çözümler: +- Bağlantı mutlak bir URL ise (bir şema içeriyorsa), değiştirilmeden kullanılır. +- Bağlantı `//` ile başlıyorsa, yalnızca geçerli URL'deki şema uygulanır. +- Bağlantı `/` ile başlıyorsa, etki alanı kökünden mutlak bir yol oluşturulur. +- Diğer durumlarda, URL geçerli yola göre oluşturulur. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -`isEqual(string|Url $anotherUrl): bool` yöntemi iki URL'nin aynı olup olmadığını test eder. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +İki URL'nin aynı olup olmadığını kontrol eder. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript] diff --git a/http/uk/urls.texy b/http/uk/urls.texy index 0a2df8960a..e59f6efbc1 100644 --- a/http/uk/urls.texy +++ b/http/uk/urls.texy @@ -44,7 +44,18 @@ $url = new Url( ); ``` -Для отримання або зміни окремих компонентів URL доступні такі методи: +Клас `Url` реалізує інтерфейс `JsonSerializable` і надає метод `__toString()`, що дозволяє роздрукувати об'єкт або використовувати його з `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Наступні методи доступні для отримання або зміни окремих компонентів URL: .[language-php] | Setter | Getter | Повернуте значення @@ -72,7 +83,10 @@ $url = new Url( | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)` -Метод `getDomain(int $level = 2)` повертає праву або ліву частину хоста. Ось як це працює, якщо хост - `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Повертає праву або ліву частину хоста. Ось як це працює, якщо хост має вигляд `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,17 +98,33 @@ $url = new Url( | `getDomain(-3)` | `''` -Клас `Url` реалізує інтерфейс `JsonSerializable` і має метод `__toString()`, щоб об'єкт можна було роздрукувати або використати в даних, що передаються в `json_encode()`. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Перевіряє, чи не збігаються дві URL-адреси. ```php -echo $url; -echo json_encode([$url]); +$url->isEqual('https://nette.org'); ``` -Метод `isEqual(string|Url $anotherUrl): bool` перевіряє, чи ідентичні два URL. + +Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2} +---------------------------------------------------------------- +Перевіряє, чи є URL-адреса абсолютною. Адреса вважається абсолютною, якщо вона починається зі схеми (наприклад, http, https, ftp), за якою слідує двокрапка. ```php -$url->isEqual('https://nette.org'); +Url::isAbsolute('https://nette.org'); // true +Url::isAbsolute('//nette.org'); // false +``` + + +Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2} +-------------------------------------------------------------------------- +Нормалізує шлях до URL-адреси, видаляючи спеціальні сегменти `.` і `..`. Цей метод видаляє надлишкові елементи шляху так само, як це роблять браузери. + +```php +Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' +Url::removeDotSegments('/../foo/./bar'); // '/foo/bar' +Url::removeDotSegments('./today/../file.txt'); // 'file.txt' ``` @@ -118,7 +148,18 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' ``` -Для отримання або зміни окремих компонентів URL доступні такі методи: +Клас `UrlImmutable` реалізує інтерфейс `JsonSerializable` і надає метод `__toString()`, що дозволяє роздрукувати об'єкт або використовувати його з `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +URL Components .[method] +------------------------ + +Наступні методи доступні для отримання або зміни окремих компонентів URL: .[language-php] | Wither | Getter | Повернуте значення @@ -136,7 +177,9 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | | `getHostUrl(): string`| `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | повний URL -Ми також можемо працювати з окремими параметрами запиту, використовуючи: +Метод `withoutUserInfo()` видаляє `user` і `password`. + +Ми також можемо оперувати індивідуальними параметрами запиту за допомогою: .[language-php] | Wither | Getter @@ -144,16 +187,44 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer' | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | | `getQueryParameter(string $name)` -Метод `getDomain(int $level = 2)` працює так само, як і метод у `Url`. Метод `withoutUserInfo()` видаляє `user` і `password`. -Клас `UrlImmutable` реалізує інтерфейс `JsonSerializable` і має метод `__toString()`, щоб об'єкт можна було роздрукувати або використати в даних, що передаються в `json_encode()`. +getDomain(int $level = 2): string .[method] +------------------------------------------- +Повертає праву або ліву частину хоста. Ось як це працює, якщо хост має вигляд `www.nette.org`: + +.[language-php] +| `getDomain(1)` | `'org'` +| `getDomain(2)` | `'nette.org'` +| `getDomain(3)` | `'www.nette.org'` +| `getDomain(0)` | `'www.nette.org'` +| `getDomain(-1)` | `'www.nette'` +| `getDomain(-2)` | `'www'` +| `getDomain(-3)` | `''` + + +resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2} +---------------------------------------------------------------------- +Розв'язує абсолютну URL-адресу так само, як браузер обробляє посилання на HTML-сторінці: +- Якщо посилання є абсолютною URL-адресою (містить схему), воно використовується без змін. +- Якщо посилання починається з `//`, застосовується лише схема з поточної URL-адреси. +- Якщо посилання починається з `/`, створюється абсолютний шлях від кореня домену. +- В інших випадках URL будується відносно поточного шляху. ```php -echo $url; -echo json_encode([$url]); +$url = new UrlImmutable('https://example.com/path/page'); +echo $url->resolve('../foo'); // 'https://example.com/foo' +echo $url->resolve('/bar'); // 'https://example.com/bar' +echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Метод `isEqual(string|Url $anotherUrl): bool` перевіряє, чи ідентичні два URL. + +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Перевіряє, чи є дві URL-адреси ідентичними. + +```php +$url->isEqual('https://nette.org'); +``` UrlScript .[#toc-urlscript]