2015-04-07 41 views
0

Chrome瀏覽器不正確地呈現我的SVG,所以我想將Chrome改爲PNG。 SVG在其他現代瀏覽器中看起來很漂亮,特別是iOS上的移動Safari,用戶可能會放大縮小 - 所以其他人都獲得SVG,但Chrome獲得PNG。我怎樣才能做到這一點?PHP:根據瀏覽器提供不同的圖像?

+0

此[鏈接](https://www.google.com.au/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8 #q = css%20browser%20dependent%20style)應該是一個很好的開始 – gwillie

+0

我很好奇你的SVG是什麼,Chrome無法正確渲染,但其他瀏覽器可以... – wavemode

+0

@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

回答

1

閱讀the user agent string和服務條件的內容:

<?php 

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false) 
{ 
    ?> 
     <img src="mycontent.png"> 
    <?php 
} else { 
    ?> 
     <svg>mycontent</svg> 
    <?php 
} 

?> 
+0

謝謝!它工作正常,但是您的代碼最後需要一個?>來關閉PHP。補充一點,我會接受它作爲答案。 (不希望這個小標記問題導致其他人混淆) – Mentalist

+0

實際上,PHP不需要結束標記。這實際上是最好的做法[不包括一個](http://stackoverflow.com/questions/4410704/why-would-one-omit-the-close-tag)。 – wavemode

+0

感謝您的額外細節。我所知道的是,在添加結束標記之前,我收到了以下錯誤,並添加了它,解決了它:解析錯誤:語法錯誤,意外的'<'第24行的filepath/test.php第24行的'<'一個結束標籤,所以它繼續嘗試將HTML解析爲PHP。任何想法還有什麼解決辦法,如果關閉PHP不是推薦的解決方案?無論如何,我現在認爲這個問題得到了回答,因爲我認爲我們的意見足以澄清任何其他可能有困難的讀者。乾杯。 – Mentalist

相關問題