提取源URL和字符串中的锚文本

I am trying to extract data from a series of string but no luck. in the example code below, I tried using preg_split but its not giving me the result I want.

using the code below:

<?php
$str = '<a href="https://rads.stackoverflow.com/amzn/click/com/B008EYEYBA" rel="nofollow noreferrer">Nike Air Jordan SC-2 Mens Basketball Shoes 454050-035</a><img src="http://www.assoc-amazon.com/e/ir?t=mytwitterpage-20&l=as2&o=1&a=B008EYEYBA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);

echo '<pre>';
print_r($chars);
echo '<pre>';
?>

gives the result:

Array
(
    [0] => Array
        (
            [0] =>  0
        )

    [1] => Array
        (
            [0] => href="https://rads.stackoverflow.com/amzn/click/com/B008EYEYBA" rel="nofollow noreferrer">Nike
            [1] => 3
        )

    [2] => Array
        (
            [0] => Air
            [1] => 167
        )

    [3] => Array
        (
            [0] => Jordan
            [1] => 171
        )

    [4] => Array
        (
            [0] => SC-2
            [1] => 178
        )

    [5] => Array
        (
            [0] => Mens
            [1] => 183
        )

    [6] => Array
        (
            [0] => Basketball
            [1] => 188
        )

    [7] => Array
        (
            [0] => Shoes
            [1] => 199
        )

    [8] => Array
        (
            [0] => 454050-035 205
        )

    [9] => Array
        (
            [0] => src="http://www.assoc-amazon.com/e/ir?t=mytwitterpage-20&l=as2&o=1&a=B008EYEYBA"
            [1] => 224
        )

    [10] => Array
        (
            [0] => width="1"
            [1] => 305
        )

    [11] => Array
        (
            [0] => height="1"
            [1] => 315
        )

    [12] => Array
        (
            [0] => border="0"
            [1] => 326
        )

    [13] => Array
        (
            [0] => alt=""
            [1] => 337
        )

    [14] => Array
        (
            [0] => style="border:none
            [1] => 344
        )

    [15] => Array
        (
            [0] => !important;
            [1] => 363
        )

    [16] => Array
        (
            [0] => margin:0px
            [1] => 375
        )

    [17] => Array
        (
            [0] => !important;"
            [1] => 386
        )

    [18] => Array
        (
            [0] => />

            [1] => 399
        )

)

note in array1, the word "Nike is included when I only need is just the URL.

[1] => Array
        (
            [0] => href="https://rads.stackoverflow.com/amzn/click/com/B008EYEYBA" rel="nofollow noreferrer">Nike
            [1] => 3
        )

actually, my ultimate goal in extracting $str is just to output the source URL and the achor text in a separate array like so:

URL:

http://www.amazon.com/gp/product/B008EYEYBA/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B008EYEYBA&linkCode=as2&tag=mytwitterpage-20

anchor text:

Nike Air Jordan SC-2 Mens Basketball Shoes 454050-035

any idea how I can accomplish this is greatly appreciated.

Using a regular expression to parse html is a bad practice. PHP has DOM extension for that. You simply cannot build a universal regex which is going to work for any html you might encounter. DOM approach is much more extendable.

$string = '<a href="https://rads.stackoverflow.com/amzn/click/B008EYEYBA">Nike Air Jordan SC-2 Mens Basketball Shoes 454050-035</a><img src="http://www.assoc-amazon.com/e/ir?t=mytwitterpage-20&l=as2&o=1&a=B008EYEYBA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($string);
libxml_clear_errors();
$elementA = $dom->getElementsByTagName('a')->item(0);
$aText = $elementA->nodeValue;
$aLink = $elementA->getAttribute('href');
echo $aLink . "
" . $aText;

You can do this with the help of php function.

You want to remove the anchor tag here.

you can use strip_tags() function to remove all tags.