在php中获取不同长度的子字符串

时间:2017-05-29 22:56:49

标签: php

所以经过一些艰难的事情,我在搜索第一次 shirtsArray = ["StarWarsBlackFittedT.jpg", "CollaredFittedWhiteWithBeigeSplash.jpg", "CollaredWhiteWithZigzagLightBlueStripes.jpg", "ClooaredBlackWithWhiteStripes.jpg", "CollaredFittedNavyBlue.jpg"]

之后,能够从靠近我的目标的大海捞针堆中获得一大块子串
"getflashmedia"

我想获取var_dump($str) = string(1735) "getflashmedia" src="http://www.exampleURL.com/media-name.mp4"></object> .../*a haystack of code as string*/" 内的网址,但长度不一,所以我无法真正使用src函数

2 个答案:

答案 0 :(得分:3)

使用正则表达式,我建议使用以下内容:src="(.*?)"

此表达式按字面意思匹配src=",然后在找到另一个"时开始捕获并停止。

<?php

$input = 'getflashmedia" src="http://www.exampleURL.com/media-name.mp4"></object>';

preg_match_all('/src="(.*?)"/', $input, $matches);

print_r($matches[1]);

输出:

Array
(
    [0] => http://www.exampleURL.com/media-name.mp4
)

这将从输入字符串中的每个src属性获取每个链接。如果您只需要第一个,请使用preg_match()

答案 1 :(得分:2)

我强烈建议您使用XML解析器,而不是使用字符串函数或正则表达式来解析XML / HTML。你可以用这种方式建立一个更可靠的刮刀。

XML解析器可以处理编写字符串处理代码时可能没有想到的情况。

请参阅XML解析器:http://php.net/manual/en/book.xml.php

另一个选项是SimpleXML:http://php.net/manual/en/simplexml.examples-basic.php

有许多适合它的库。