php / php/php-src

ext/uri: RFC 3986 IPv6 handling is inconsistent

Aperta
#22,618 1 commento 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Extension: uri Status: Verified
Lingua principale
C
Stelle
40.4k
Fork
8.2k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

The following code:

<?php
$u = new Uri\Rfc3986\Uri("http://[::0:0A]/");
var_dump($u->getRawHost());
var_dump($u->getHost());
var_dump($u->toRawString());
var_dump($u->toString());

Resulted in this output:

string(8) "[::0:0A]"
string(8) "[::0:0a]"
string(49) "http://[0000:0000:0000:0000:0000:0000:0000:000a]/"
string(49) "http://[0000:0000:0000:0000:0000:0000:0000:000a]/"

But I expected this output instead:

string(8) "[::0:0A]"
string(8) "[0000:0000:0000:0000:0000:0000:0000:000a]"
string(49) "http://[::0:0A]/"
string(49) "http://[0000:0000:0000:0000:0000:0000:0000:000a]/"

Alternatively I might expect this output:

string(8) "[::0:0A]"
string(8) "[::a]"
string(49) "http://[::0:0A]/"
string(49) "http://[::a]/"
PHP Version
PHP 8.5.8 (cli) (built: Jul  1 2026 16:35:50) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.5.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.8, Copyright (c), by Zend Technologies
Operating System

Arch Linux

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia in ext/uri e riproduci l’esempio IPv6 Uri Rfc3986 segnalato, confrontando getRawHost(), getHost(), toRawString() e toString(). Verifica la gestione di RFC 3986 e i test esistenti per la normalizzazione IPv6; il lavoro è completo quando il comportamento di normalizzazione scelto è coerente tra questi metodi e coperto da test di regressione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php
Ambito
api, backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.