for ($i=1; $i<=100; $i++) {
$i++;
$word1 = '"';
$word2 = '"';
preg_match('/'.preg_quote($word1).'(.*?)'.preg_quote($word2).'/is', $html, $match);
echo $match[1]."<br>";
$main = explode('"',$html);
$html = $main[1];
//echo $main[1];
}
这是我目前正在使用的代码。但是没有用。我想要做的就是在“.link”文本之间进行操作“或链接src =”“获取src。我可以很容易地介入”但我怎样才能获得所有匹配的单词?我想创建一个功能来完成这项工作。喜欢 Get_Text($ result_array,$ START_TAG,$ END_TAG,$ HTML);其中$ result_array是结果而$ start_tag是起始单词链接src =“和$ end_tag结束单词就像”。和$ html是我想要搜索的文本 编辑:
Word 1是(src =“)
Word 2是(“)
html is (bla bla bla <iframe src="http://website.domain"></iframe> bla bla bla <embed src="url"></embed>)
现在的结果应该是 $ result [1] =“http://website.domain”; $ result [2] =“url”
答案 0 :(得分:1)
function get_text_between ($start, $end, $string) {
$start = preg_quote($start);
$end = preg_quote($end);
preg_match_all("/$start(.*?)$end/is", $string, $match);
return $match[1];
}
$result = get_text_between('src="', '"', 'bla bla bla <iframe src="http://website.domain"></iframe> bla bla bla <embed src="url"></embed>');
print_r($result);
输出:
Array
(
[0] => http://website.domain
[1] => url
)
但是,使用regexp解析HTML通常是一个坏主意。如果HTML在src
和=
之间有空格,或HTML使用单引号而不是双引号等,则无效。您应该使用DOM解析器库,PHP有几个。