多次得到两个单词的PHP

时间:2013-04-29 15:37:28

标签: php

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”

1 个答案:

答案 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有几个。