Sen ikiye sorunuzu bölmek zorunda:
Do I need to encode the double quotation mark character in the URL path?
Evet, tırnak işareti karakteri (U 0022) düz izin verilmez ve %22
ile kodlanmış olmalıdır.
Do I need to encode the double quotation mark character in a HTML attribute value?
Bu bağlıdır how you declare the attribute value:
Varsayılan olarak, SGML tüm değerleri çift tırnak (ASCII ondalık 34) veya tek tırnak işareti (ASCII ondalık 39) kullanılarak ayrılmış olması nitelik gerektirir. Değeri çift tırnak işaretleri, ve tersi ile sınırlandırılmış zaman tek tırnak işaretleri öznitelik değeri içinde dahil edilebilir. Yazarlar aynı zamanda çift tırnak ("
) ve tek tırnak ('
) temsil etmek için sayısal karakter başvuruları kullanabilirsiniz. Çift tırnak yazarlar da karakter öğesi gönderimi "
kullanabiliriz.
- Eğer (öznitelik değer beyan etmek çift tırnak işareti karakteri kullanıyorsanız
attr
=
"
value
"
), then you must encode the douvke quoteation mark character inside the attribute value declaration with a character reference ("
, "
ya da "
).
- Eğer öznitelik değeri beyanı için tek tırnak işareti karakteri (U 0027) kullanıyorsanız (
attr
=
'
{ [(4)]} '
strong>), daha sonra tırnak işareti karakteri kodlamak gerekmez. Ama bunu yapmak için önerilir.
Eğer öznitelik değeri çizgi ve bir çift tırnak işareti beri Ve, (tüm hiçbir tırnak kullanarak) üçüncü durum geçerli değildir:
Bazı durumlarda, yazarlar herhangi bir tırnak işaretleri olmadan bir niteliğin değerini belirtebilirsiniz. Öznitelik değeri sadece harfler (az ve AZ), rakamlar (0-9), tire (ASCII ondalık 45), nokta (ASCII ondalık 46), alt çizgi (ASCII ondalık 95), ve iki nokta üst üste (ASCII ondalık 58) içerebilir. Bunları ortadan kaldırmak mümkün olsa bile biz tırnak işaretleri kullanmanızı öneririz.
Now bringing both answers together
Çift tırnak işareti bir URL kodlanmış olması gerektiğinden (but the single quotation mark is!), size yol kesimleri veya URL yolu ile bunu yapmak için aşağıdakileri kullanabilirsiniz:
$path = '/thisisa"quote/helloworld/';
$path = implode('/', array_map('rawurlencode', explode('/', $path)));
Eğer bir HTML niteliğine bu URL yolu koymak istiyorsanız, özel HTML karakterleri kalan kodlamak için htmlspecialchars
işlevini kullanın:
echo '<link rel="canonical" href="' . htmlspecialchars($path) . '" />';