<?php
$string = 'some text <div class"myClass" path="myPath_1">some content</div> some text
some text <div class"myClass" path="myPath_2">some content</div> some text...';
$matches = array();
$matches = preg_match_all('/path="([a-zA-Z0-9_]+)"/', $string, $matches, PREG_SET_ORDER);
$paths = array_map(function($m){
return $m[0];
}, $matches);
var_dump($paths);
// array("myPath_1", "myPath_2")
?>
在这里,我将正则表达式字符串path="([a-zA-Z0-9_]+)"
与 PHP 的preg_match_all 函数一起使用,它应该与您的路径匹配。path
,但是不是有效的 html 属性,我不知道您是否知道。考虑将其更改为data-path
.
我知道您在问如何替换您的 div 标签,但您当前的 html 格式不正确。<div class"myClass"
应该<div class="myClass"
改为。但是,您应该能够执行以下操作:
<?php
$string = 'some text <div class"myClass" path="myPath_1">some content</div> some text
some text <div class"myClass" path="myPath_2">some content</div> some text...';
$new_string = preg_replace('<div class=?"myClass" path="([a-zA-Z0-9_]+)">[a-zA-Z0-9 ]+</div>','<img src="$1">');
?>