2016-02-13 35 views
4

我需要獲取SVG圖像並將圖像插入頁面。我取利用圖像:使用PHP的file_get_contents將類添加到SVG元素

<?php echo file_get_contents("logo.svg"); ?> 

,其輸出類似

<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24""> 
    <path d="M12 2c5.514 0 10 4.486"></path> 
</svg> 

我會如何插入到頁面後添加類的SVG元素?如:

<svg class="LogoStyle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24""> 
    <path d="M12 2c5.514 0 10 4.486"></path> 
</svg> 

或靶向路徑元素:

<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24""> 
    <path class="LogoStyle" d="M12 2c5.514 0 10 4.486"></path> 
</svg> 

任何幫助將是不錯的,謝謝!

回答

1

在插入頁面後,可以使用jQuery將類添加到元素。

$('svg').addClass('LogoStyle'); 
+0

有道理,我有點希望可能有一種方法來獲取SVG文件並將類名包含到使用PHP的DOM中。我想這是儘可能簡單的做法。 – GSimon

1

您可以將您svg作爲PHP變量,然後使用DOM文檔()功能來做到這一點。

$svg = file_get_contents("logo.svg"); 
$dom = new DOMDocument(); 
$dom->loadHTML($svg); 
foreach($dom->getElementsByTagName('svg') as $element) { 
    $element->setAttribute('class','new-classname-goes-here'); 
} 
$dom->saveHTML(); 
$svg = $dom->saveHTML();  
echo $svg; 

要定位pathsvg元件代替,簡單地更新getElementsByTagName('svg')getElementsByTagName('path')