Link to home
Start Free TrialLog in
Avatar of dthardy
dthardyFlag for United States of America

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.
<?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);
    }
?>

Open in new window

Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

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
Avatar of dthardy

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"
ASKER CERTIFIED SOLUTION
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Avatar of Marco Gasi
Marco Gasi
Flag of Spain image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of dthardy

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