如何使用php从数组中的所有锚点标签获取国家/地区、链接、文本

如何使用PHP从数组中的所有锚标记获取国家/地区、链接、文本


$str ='

<div class="main"> 

<span country="PK"></span><a class="link" href="linkOne">1</a> 

<span country="US"></span><a class="link" href="linkTwo">2</a> 

<span country="UA"></span><a class="link" href="LinkThree">3</a> 

</div>';

function getStr($str,$start,$end){

    $str = explode($start,$str,2);

    $str = explode($end,$str[1],2);

    return $str[0];

}

$html =  getStr($str,'<div class="main">','</div>');

preg_match_all('/<a[^>]+href=([\'"])(?<href>.+?)\1[^>]*>/i', $html, $result);


if (!empty($result)) {

   echo $result['href'][0];

}

需要这样:


/* Array */

$links[0] = "PK", "linkOne", "1";

$links[1] = "US", "linkTwo", "2";

/* and so on ... */


冉冉说
浏览 85回答 1
1回答

犯罪嫌疑人X

我认为您正在寻找服务器端JQuery,它实际上存在!使用示例在您的具体情况下,它可以这样使用:<?phpinclude 'phpQuery.php';$str = '<span country="US"></span><a href="url-here">some text</a>';$doc = phpQuery::newDocument($str);// Note that we can use CSS style selector,// instead of just "span".$links = array();foreach($doc['span'] as $item){  $node = pq($item);  $sibling = $node->next();  if ( $sibling->is('a') ) {    $links[] = array(      $node->attr('country'),      $sibling->attr('href'),      $sibling->text(),    );  }}// Display result:print_r($links);只需获取phpQuery-0.9.5.386-onefile.zip,将其解压并将其重命名为phpQuery.php,它是一个文件!
打开App,查看更多内容
随时随地看视频慕课网APP