我如何在PHP中创建一个字符串对象的数组?

时间:2016-07-21 14:21:45

标签: php arrays simple-html-dom

我想创建一个变量$ link数组来获取数组中的所有链接,以便我可以在花括号外同时处理它们

include("simple_html_dom.php");


$html = file_get_html($url);

$i=0;
$linkObjs = $html->find('h3.r a'); 
foreach ($linkObjs as $linkObj) 
{
    $title = trim($linkObj->plaintext);
    $link  = trim($linkObj->href);

    //if it is not a direct link but url reference found inside it, then extract
    if (!preg_match('/^https?/', $link) && preg_match('/q=(.+)&sa=/U', $link, $matches) && preg_match('/^https?/', $matches[1])) 
    {
        $link = $matches[1];
    } else if (!preg_match('/^https?/', $link)) { // skip if it is not a valid link
        continue;
    }

   $descr = $html->find('span.st',$i); // description is not a child element of H3 thereforce we use a counter and recheck.
   $i++;   
}

2 个答案:

答案 0 :(得分:1)

创建一个数组并推送匹配。

include("simple_html_dom.php");


$html = file_get_html($url);

$links = array();
$i=0;
$linkObjs = $html->find('h3.r a'); 
foreach ($linkObjs as $linkObj) 
{
    $title = trim($linkObj->plaintext);
    $link  = trim($linkObj->href);


  //   if it is not a direct link but url reference found inside it, then extract
if (!preg_match('/^https?/', $link) && preg_match('/q=(.+)&sa=/U', $link, $matches) && preg_match('/^https?/', $matches[1])) 
{
   array_push($links, $link);        
 } else if (!preg_match('/^https?/', $link)) { // skip if it is not a valid link
   continue;
   }

$descr = $html->find('span.st',$i); // description is not a child element of H3 thereforce we use a counter and recheck.
$i++;   
}

答案 1 :(得分:0)

只需声明一个数组变量,然后添加它以便以后使用它。

在循环之前,

$myLinks = [];

而且,就在这一行之后,

 $link = $matches[1];
 $myLinks[] = $link;

现在,您可以使用数组$ myLinks,希望这就是您所需要的。