首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php -以引号括起来的两点之间的字符计数

php -以引号括起来的两点之间的字符计数
EN

Stack Overflow用户
提问于 2013-10-04 06:30:13
回答 1查看 140关注 0票数 1

好吧,这会很奇怪,但我需要它

我试图得到字符数之间的一些特定引号之间的一大行代码“。基本上,我需要能够得到所有之间的第3引文之间的第5引文在结尾。

下面是一个例子

代码语言:javascript
复制
a:2:{s:10:"categories";s:5758:"...........";s:5:"posts";s:6:"a:0:{}";}

我需要知道所有句号中的字符数是多少。实际上有代码代替了这些句点。

因为有11个句点,所以我的字符数将是11个。唯一一致的东西是这个引号,所以我需要以它为基础。

任何帮助都会很棒。

这是我的密码。我基本上是在创建代码和添加一些自定义标签。在取消序列化代码之前,我尝试过先序列化代码,但这似乎不起作用。

代码语言:javascript
复制
<?
$thisisit .= 'a:2:{s:10:"categories";s:5481:"a:40:{';
include('connect.php');

$sql = "SELECT * FROM wp_terms ORDER BY term_id ASC LIMIT 40"; 
$result = mysql_query($sql);
$count = 0;
while($row = mysql_fetch_array($result)) {
    $name = $row['name'];
    $charactercount = strlen($name);
    $term_id = $row['term_id'];
    $thisisit .= 'i:'.$count.';a:2:{s:11:"filter_name";s:20:"add_keyword_category";s:11:"filter_args";a:7:{s:12:"filter_value";s:'.$charactercount.':"'.strtolower($name).'";s:19:"filter_search_title";s:1:"1";s:21:"filter_search_excerpt";i:0;s:21:"filter_search_content";s:1:"1";s:21:"faf_filter_categories";a:1:{i:4;s:3:"'.$term_id.'";}s:17:"filter_match_word";i:0;s:17:"filter_match_case";i:0;}}';
    //echo "<br><br>";
    $count++;
}
$thisisit .= '}";s:5:"posts";s:6:"a:0:{}";}';

$array = unserialize($thisisit);
echo strlen($array['categories']);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 06:32:29

实际上,这些数据看起来是序列化的。正确的解决方案是使用php函数unserialize

然后,根据您的结构,了解该元素的长度:

代码语言:javascript
复制
strlen(unserialize($data)['categories']);

如果运行旧的php,则需要将结果存储在临时变量中:

代码语言:javascript
复制
$array = unserialize($data);
echo strlen($array['categories']);

如果您的序列化数据已损坏(如“未从正确执行serialize__中接收到”),正如您的示例所显示的那样,我们可以返回到原来的任务:

在开始的第三次报价到结尾的第五次报价之间得到所有的信息

实现这一目标的最简单方法是:

代码语言:javascript
复制
implode("'", array_slice(explode("'", $data), 3, -5));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19174762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档