2016-08-30 47 views
0

內的通配符字符串假設我有以下代碼作爲變量的值(我可以使用JS或PHP此):修改其他兩個字符串

<div class="container"> 
    <h1>The Page Title</h1> 

    <img src="MyImage.JPG" class="graphic" /> 

    <p>Some body copy...</p> 

    <img class="graphic" src="misc/SecondImage.JPG" /> 
</div> 

有沒有一種方法,我可以轉換圖像文件名爲小寫,同時保留其他所有內容,然後將所有新代碼重寫到變量中?

如果解決方案涉及發現的所有實例src="*"(或弦src=""之間的任何東西),並把它們轉換成小寫,這將是很好(我很高興與任何未來的元素我想補充的src值也被轉換)。

+0

輸出 「重寫所有的新代碼到變量的」 這是什麼意思? –

回答

1

使用PHP,其中$html是你的HTML內容:

$dom = new DOMDocument; 
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); 

$imgNodeList = $dom->getElementsByTagName('img'); 

foreach ($imgNodeList as $imgNode) { 
    $imgNode->setAttribute('src', strtolower($imgNode->getAttribute('src'))); 
} 

echo $dom->saveHTML(); 
+0

完美,謝謝。 – Chris

0

試試下面的代碼

$('img').each(function(){ 
 
    $(this).attr('src', $(this).attr('src').toLowerCase()) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <h1>The Page Title</h1> 
 

 
    <img src="MyImage.JPG" class="graphic" /> 
 

 
    <p>Some body copy...</p> 
 

 
    <img class="graphic" src="misc/SecondImage.JPG" /> 
 
</div>

+0

感謝您的回覆,但我原始文章中的代碼是變量的值,而不是DOM的一部分。 爲了給更多的上下文,我實際上從其他地方檢索HTML並將其存儲在變量中,並從那裏我需要使圖像文件名小寫。 – Chris

+0

@Chris所以上面的html是變量的一部分? –

+0

這是正確的,對不起,代碼着色可能在這裏對我工作:) – Chris

1

如果你只需要申請的路徑地下室小寫(文件名)你可以與DOM一起使用正則表達式:

$html = <<< STR 
<div class="container"> 
    <h1>The Page Title</h1> 

    <img src="MyImage.JPG" class="graphic" /> 

    <p>Some body copy...</p> 

    <img class="graphic" src="misc/SecondImage.JPG" /> 
</div> 
STR; 


$dom = new DOMDocument; 
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); 

// Get all images 
$images = $dom->getElementsByTagName('img'); 

foreach ($images as $img) { 
    $newSrc = preg_replace_callback('~[^/]+$~', function($match) { 
     // Convert file names to lowercase 
     return strtolower($match[0]); 
    }, $img->getAttribute('src')); 
    // Set new attribute value 
    $img->setAttribute('src', $newSrc); 
} 

// Save to original variable 
$html = $dom->saveHTML(); 

echo $html;

<div class="container"> 
    <h1>The Page Title</h1> 

    <img src="myimage.jpg" class="graphic"> 

    <p>Some body copy...</p> 

    <img class="graphic" src="misc/secondimage.jpg"> 
</div> 

Live demo

+0

這工作完美,非常感謝! – Chris