那麼,我使用idna_convert PHP類(http://idnaconv.net/index.html)爲了編碼/解碼域名。如何檢查域是否是punycode?
不幸的是,它似乎沒有提供接口來檢查域名是否已經是punycode。
達到此目的的最佳方法是什麼?如果有人可以發佈源代碼如何驗證域是否是punycode(有解釋,因爲idna_convert代碼對我來說不是很清楚),那將會很好。我已經知道如何從idna_convert中捕捉異常。 :-)
btw .:當您嘗試將域名轉換爲已經是punycode的punycode時,idna_convert會引發異常(請參見https://github.com/phlylabs/idna-convert/blob/master/src/Punycode.php;第157行)。此外,我不太瞭解他們的支票是如何工作的。
可能會嘗試php idn_to_utf8函數並將輸出與輸入進行比較? http://php.net/manual/en/function.idn-to-utf8.php –
@PavelPetrov:謝謝,這個函數看起來很有趣,比捕捉異常要好得多。 :-) – Andreas
@Andreas,但它可以產生錯誤的結果,因爲punycode不僅轉換爲unicode。其他,idna_convert將不需要,你知道。 – Jehy