我想用PHP为每个img添加父级。
我可以在jQuery中使用wrap()
执行此操作,但我不知道如何使用PHP。
HTML:
<div id="main">
<img src="..." />
<img src="..." />
<img src="..." />
<img src="..." />
</div>
JS:
$("#main img").each(function(){ $(this).wrap('<div class="photo" />'); });
结果HTML:
<div id="main">
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
</div>
答案 0 :(得分:3)
Simple HTML DOM可能是你的答案。
答案 1 :(得分:1)
您可以使用我在下面创建的功能来完成它。
<?php
$page = '
<body>
<div id="main">
<img src="..." />
<img src="..." />
<img src="..." />
<img src="..." />
</div>
</body>
';
echo $page = wrapImg ( $page, 0 );
function wrapImg ( $page, $offset )
{
if ( FALSE !== ( $startImg = strpos( $page, '<img', $offset ) )
&& FALSE !== ( $endImg = strpos( $page, '/>', $startImg ) )
) {
$before = '<div class="photo">';
$after = '</div>';
$start = substr( $page, 0, $startImg );
$img = substr( $page, $startImg, $endImg+2-$startImg );
$end = substr( $page, $endImg+2);
$page = $start . $before . $img . $after . $end;
$length = ($startImg + strlen( $before . $img . $after )-1);
$page = wrapImg ( $page, $length );
}
return $page;
}
?>
结果将是:
<body>
<div id="main">
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
<div class="photo"><img src="..." /></div>
</div>
</body>