我正试图从字符串中获取一个动态值。但是什么都没有出现。
ob_start();
var_dump($torrent->result['info']['pieces']);
$pieces = ob_get_clean();
$piecescorrected = explode($pieces, 'string(*)');
echo $piecescorrected;`
这是怎么回事?
编辑:一些澄清。$pieces需要从后面的所有其他随机字符中筛选出来。$pieces产量:
string(12620) "< ÏÚÿÊܵ䬧âW—µ-‘CÄÞ½§§¼ø0LØëÍI×L —@c õL2“iÓ¹ý¼Bl'-“’4žþÊYï‡
现在$pieces需要通过过滤掉string(12620)
进行校正但是这个值是动态的,所以我使用了$piecescorrected = explode($pieces, 'string(*)');
注意字符串中的*(*)
在注释中,您实际上只想要字符串长度。
因此,您不需要任何输出缓冲或explode()调用。只需像这样使用strlen()
:
echo strlen($torrent->result['info']['pieces']);
输出:
12620
这就是它的问题所在:explode()
正在寻找一个文本字符串。它不需要通配符。
如果您有一个像1,2,3,4
这样的字符串,您可以使用explode(',', '1,2,3,4')
通过逗号分隔来获得这些值的数组。在这里,您可以拆分字面'string'
,但不能拆分'string(*)'
。