Chrome瀏覽器不正確地呈現我的SVG,所以我想將Chrome改爲PNG。 SVG在其他現代瀏覽器中看起來很漂亮,特別是iOS上的移動Safari,用戶可能會放大縮小 - 所以其他人都獲得SVG,但Chrome獲得PNG。我怎樣才能做到這一點?PHP:根據瀏覽器提供不同的圖像?
回答
閱讀the user agent string和服務條件的內容:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
{
?>
<img src="mycontent.png">
<?php
} else {
?>
<svg>mycontent</svg>
<?php
}
?>
謝謝!它工作正常,但是您的代碼最後需要一個?>來關閉PHP。補充一點,我會接受它作爲答案。 (不希望這個小標記問題導致其他人混淆) – Mentalist
實際上,PHP不需要結束標記。這實際上是最好的做法[不包括一個](http://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag)。 – wavemode
感謝您的額外細節。我所知道的是,在添加結束標記之前,我收到了以下錯誤,並添加了它,解決了它:解析錯誤:語法錯誤,意外的'<'第24行的filepath/test.php第24行的'<'一個
此[鏈接](https://www.google.com.au/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8 #q = css%20browser%20dependent%20style)應該是一個很好的開始 – gwillie
我很好奇你的SVG是什麼,Chrome無法正確渲染,但其他瀏覽器可以... – wavemode
@wavemode我調試了SVG現在它也可以在Chrome上渲染。這個問題是由於Chrome渲染路徑的行爲不如1px而造成的。我不需要這些筆畫,所以我從XML中刪除了它們。這當然不會使這個問題變得不那麼有效,因爲知道如何爲PHP提供瀏覽器特定的內容是非常有用的。如果你好奇,這是我改變的代碼(所有填充)。用於:style =「fill:#cdc4b9; stroke:#cdc4b9; stroke-width:0.25907141; stroke-miterlimit:4; stroke-opacity:1; stroke-dasharray:none」現在縮短爲:style =「fill: #cdc4b9;」 – Mentalist