我有人插入要在我的网站上显示的视频代码。我想确保这些视频尺寸的宽度不超过590像素。
例如,他们插入一个640 x 385的视频,我的脚本会找出一些新的尺寸,因此宽度只有590像素(例如:590 x 366)...我已经得到了所有的数学和比率的东西计算出来,只需要从中提取高度和宽度,然后用新尺寸替换它们。
以下是获取维度所需的一些代码示例。下面还有代码,但是一旦我想出如何计算出尺寸,我就可以复制
的代码<object width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/ik6N1TLL2TI&hl=en_US&fs=1"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/ik6N1TLL2TI&hl=en_US&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>
我有一些过去曾帮助过的代码,这些代码会在前面没有http://的链接中添加一个URL。我试着玩代码,但无法弄明白。如果有帮助,这是原始代码:
$content_text = preg_replace('%
(<a\b[^>]*?href\s*+=\s*+) # capture first chunk of A tag in group 1
("|\'|) # capture HREF attribute delimiter in group 2
(?!\w++://|/) # ensure URL has no scheme nor abs path
([^"\' >]++) # capture relative URI path in group 3
\2 # match closing delimiter for HREF attribute
%ix', '$1"' . SITEURL . '/$3"', $content_text);
提前感谢您的帮助!
答案 0 :(得分:2)
可能会为此通过煤炭,因为您应该使用PHP中的HTML DOM parser。但这里的正则表达式是一种“替代”方法。
preg_match('~<object.*(width|height)=(.*) (width|height)=(.*)(>|\s)~isU', $contents, $matches);
if (!empty($matches)) {
$dimensions[strtolower($matches[1])] = str_replace(array("'", '"'), '', $matches[2]);
$dimensions[strtolower($matches[3])] = str_replace(array("'", '"'), '', $matches[4]);
}
HTML Parser可能是更明智的选择,但无论报价或订单如何,上述内容都应抓住宽度和高度,并将其放在$dimensions['width']
和$dimensions['height']
中。
就像我说的,这只是一个替代示例,而HTML Parser可能是更明智的选择。此外,正则表达式也可能写得更好,但哦。希望它有所帮助。