我正在尝试从一系列字符串中提取数据,但没有运气。在下面的示例代码中,我尝试使用 preg_split 但它没有给我想要的结果。
使用下面的代码:
<?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>';
?>
给出结果:
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
)
)
请注意在array1中,“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
)
实际上,我提取 $str 的最终目标只是将源 URL 和锚文本输出到一个单独的数组中,如下所示:
网址:
锚文本:
耐克 Air Jordan SC-2 男式篮球鞋 454050-035
非常感谢我如何做到这一点的任何想法。