2013-01-22 17 views
1

如何從img獲取圖像寬度和高度style?例如:php從img樣式獲取圖像寬度attr

$str = '<img style="margin-right:10px;width:37px;border:0;" src="icons/icon.png">'; 

如何獲得width => 37px?

我想,如果我們寫的風格ATTR的寬度,我們可以把它寫這樣的:

style="width:37px;"(no space with semicolon) 
style="width: 37px;"(space with semicolon) 
style="width:37px"(no space no semicolon) 
style="width: 37px"(space no semicolon) 

如果沒有分號,寬度必須在樣式年底寫的,像style="height:25px;width:37px"

那麼如何更輕鬆地做到這一點?正則表達式還是dom?謝謝。

+4

[不要使用正則表達式來解析HTML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) –

+1

DOM會將style屬性的內容作爲一個單一的字符串來獲取。 DOM不知道任何有關CSS的知識。一旦得到整個字符串,就必須進行CSS解析。 –

+0

你爲什麼要這樣做?閱讀實際圖像大小或呈現的CSS大小不是更有用嗎? – feeela

回答

3
$image = '<img src="" style="border-width: 10px; width: 32px;">'; 
preg_match('/[^-]width[: ]+([0-9]+)/', $image, $matches); 
print_r($matches); 

$匹配[1]應該有你的答案,如果你只在IMG串通過,否則它會拿起其他元素寬度這隻會工作。

+5

'border-width:10px'將匹配它。 –

+0

的確,應該已經發現了。 – Toddish