1
4

1 回答 1

0

我不是 PHP 专家,但我知道 DOI 和 SICI 确实很烦人。

URL 编码和 HTML 编码是分开的事情,所以分开考虑它们是有意义的。您必须转义尖括号以生成正确的 HTML。至于 URL 转义,您也应该这样做,因为还有其他字符可能会破坏 URL(例如#字符,它也会不时弹出)。

所以我会推荐:

'https://doi.org/' . htmlspecialcharacters(urlencode($doi))

这会给你:

<a href="https://doi.org/10.1002%2F%28SICI%291521-3978%28199806%2946%3A4%2F5%3C493%3A%3AAID-PROP493%3E3.0.CO%3B2-P">Click here</a>

请注意函数应用的顺序,以及您不想对https://doi.org解析器进行编码的事实!

对于上述“愚蠢的决定”评论......这当然很不方便。但是 SICI 在 DOI 之前就已经存在,这是我们从那以后不得不忍受的那些烦人的事情之一!

于 2017-08-17T11:23:46.163 回答