gpt4 book ai didi

php - 在数组中协商数组

转载 作者:行者123 更新时间:2023-11-28 14:57:29 24 4
gpt4 key购买 nike

当我执行正则表达式时

preg_match_all('~(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)~', $content, $turls);
print_r($turls);

我在数组中得到了一个数组。我只需要一个数组。

如何协商另一个数组中的数组

最佳答案

默认情况下 preg_match_all() 使用 PREG_PATTERN_ORDER 标志,这意味着:

Orders results so that $matches[0] is an array of full pattern matches, $matches1 is an array of strings matched by the first parenthesized subpattern, and so on.

参见 http://php.net/preg_match_all

这是示例输出:

array(
0 => array( // Full pattern matches
0 => 'http://www.w3.org/TR/html4/strict.dtd',
1 => ...
),

1 => array( // First parenthesized subpattern.
// In your case it is the same as full pattern, because first
// parenthesized subpattern includes all pattern :-)
0 => 'http://www.w3.org/TR/html4/strict.dtd',
1 => ...
),

2 => array( // Second parenthesized subpattern.
0 => 'www.w3.org',
1 => ...
),
...
)

所以,作为R. Hill已回答,您需要 $matches[0] 才能访问所有匹配的网址。而作为 budinov.com指出,你应该删除外括号以避免第二个匹配重复第一个,例如:

preg_match_all('~https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?~', $content, $turls);
// where $turls[0] is what you need

关于php - 在数组中协商数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com