我如何在PHP中创建一个字符串对象的数组?
问题描述:
i want to create an array of variable $link to get all the links in array so that i can process them simultaneously outside curly braces
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++;
}
答
Create an array and push matches.
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++;
}
答
Just declare a array variable, and add it to use it later.
Before Loop,
$myLinks = [];
And, Just after this line,
$link = $matches[1];
$myLinks[] = $link;
Now, you can use the array $myLinks, Hope this was what you needed.