dthardy
asked on
Preg_match url from string in an array and return value
I am parsing xml into an array and trying to extract the url from a string variable containing html. I want to create a variable with each url value and output the results. I can't seem to get the output correct.
The string in the array with the html code is - linkCodeHTML
The variable I have for the extracted url is - linkURL
I have posted my code below.
The string in the array with the html code is - linkCodeHTML
The variable I have for the extracted url is - linkURL
I have posted my code below.
<?php
$developerKey = "00b9";
$websiteId = "212";
$ini = ini_set("soap.wsdl_cache_enabled","0");
try {
$client = new SoapClient("https://linksearch.api.cj.com/wsdl/version2/linkSearchServiceV2.wsdl", array('trace'=> true));
//Enter the request parameters for LinkSearch below.
//For detailed usage of the parameter values, please refer to CJ Web Services online documentation
$results = $client->searchLinks(array("developerKey" => $developerKey,
"token" => '',
"websiteId" => $websiteId,
"advertiserIds" => 'joined',
"keywords" => '',
"category" => '',
"linkType" => 'Text Link',
"linkSize" => '',
"language" => 'en',
"serviceableArea" => 'US',
"promotionType" => '',
"promotionStartDate" => '',
"promotionEndDate" => '',
"sortBy" => '',
"sortOrder" => 'asc',
"startAt" => 0,
"maxResults" => 100));
//The loop below can be used to parse the results recieved in the response
print "Your link search generated ".$results->out->totalResults." results\n";
echo "Displaying the first 10 results returned\n";
foreach ($results->out->links->LinkDetail as $linkDetail) {
preg_match ("/a[\s]+[^>]*?href[\s]?=[\s\"\']+".
"(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",$linkDetail->linkCodeHTML
, $linkURL);
echo "Advertiser Name: ".$linkDetail->advertiserName."\n";
echo "Category: ".$linkDetail->category."\n";
echo "Click Commission: ".$linkDetail->clickCommission."\n";
echo "Link Code HTML: ".$linkDetail->linkCodeHTML."\n";
echo "Link Code JavaScript: ".$linkDetail->linkCodeJavascript."\n";
echo "Link Description: ".$linkDetail->linkDescription."\n";
echo "Link Destination: ".$linkURL."\n";
echo "----------------------\n";
}
echo "\n";
} catch (Exception $e){
echo "There was an error with your request or the service is unavailable.\n";
print_r ($e);
}
?>
Instead of posting code that does not work, please post a sample of the input data and a sample showing what that input data would produce if the code did work. Then we can help you with a working code sample. Thanks, ~Ray
ASKER
all of the code works with the exception of the variable I am trying to create (linkURL). The preg_match works with a single string. The problem I am having is the output of the array. The variable outputs as 'array'. You can see a sample of this script at: http://www.netepiphany.com/coupon/wp-load/cj_load.php
An example of linkCodeHTML is "<a href="http://www.tkqlhce.com/click-212-6971">Honda Goldwing Parts</a> - Genuine OEM parts"
An example of linkCodeHTML is "<a href="http://www.tkqlhce.com/click-212-6971">Honda Goldwing Parts</a> - Genuine OEM parts"
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks Ray Paseur and marqusG! Both of these helped provide the answer. Var dump was a key. Actual final variable turned out to be $linkURL[1][0]
For a short time you can see an example of the array output at - http://www.netepiphany.com/coupon/wp-load/cj_load.php
For a short time you can see an example of the array output at - http://www.netepiphany.com/coupon/wp-load/cj_load.php