获取两个字符串之间的字符串[PHP]

时间:2018-04-06 13:29:08

标签: php preg-match

好的,这可能是整个互联网,但我找不到解决方案,并一直在寻找和尝试不同的方式。

所以我到目前为止尝试的主要方式如下:

string:

<div data-image-id="344231" style="height: 399.333px; background-image: url("/website/view_image/344231/medium"); background-size: contain;"></div>

代码:

preg_match_all('/(style)=("[^"]*")/i', $value, $match);
preg_match('/background-image: url("(.*?)");/', $match[2][0], $match);
print_r($match);

我猜我不能用:

background-image: url("");代替preg_match

有人可以给我一些关于我如何获得的指导:

"/website/view_image/344231/medium"

1 个答案:

答案 0 :(得分:2)

如果您使用单引号作为背景图片网址而不是双引号,则可以使用DOMDocument并从div获取style属性。

然后使用tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']] def printData(lst): colWidths = [0] * len(tableData) for a in range(len(tableData)): colWidths[a] = len(max(tableData[a], key=len)) for i in range(len(lst[0])): output = '' for j in range(len(lst)): output += (str(lst[j][i])).rjust(colWidths[0]) print(output) print(printData(tableData)) apples Alice dogs oranges Bob cats cherries Carol moose banana David goose 将返回一个数组,其中该数组的一项将是&#34; background-image:url(&#39; / website / view_image / 344231 / medium&#39;)& #34;

循环遍历数组并使用preg_match和正则表达式explode("; ")之类的正则表达式,它将在组中捕获括号之间的内容。

如果存在正则表达式匹配,请存储该组中的值。

background-image: url\(([^)]+)\)

那会给你:

  

&#39; /网站/ view_image / 344231 /介质&#39;

Demo Php