2012-02-02 69 views
1

我有一个需要大量文件名的脚本,然后序列化数据,串行化数据中可能有数百个文件名。PHP - 抓取序列化数据中的每个第四个值

我希望能够做的是回显出每个第四个文件名。

我不太清楚如何去做这件事,如果有人可以帮助它,将不胜感激。

以下是串行数据的例子,其只拿到了8个记录,所以只有2名是输出

a:8:{i:0;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_o.jpg";i:1;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_s.jpg";i:2;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_t.jpg";i:3;s:63:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_st.jpg";i:4;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_o.jpg";i:5;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_s.jpg";i:6;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_t.jpg";i:7;s:63:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_st.jpg";} 
+4

做什么用'unserialize'问题? – Vyktor 2012-02-02 14:25:14

回答

2

您可以用MOD运营商或一个简单的for循环实现这一目标:

$data = "a:8:{i:0;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_o.jpg";i:1;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_s.jpg";i:2;s:62:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_t.jpg";i:3;s:63:"1328018910RYw4LKmf3yb2ZhCHcFB9VvPqGMTrxgXzdDpWQntJN7k6j8_st.jpg";i:4;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_o.jpg";i:5;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_s.jpg";i:6;s:62:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_t.jpg";i:7;s:63:"1328018917rdwfFQ3xBDgvLKZCH4j8qTpYkz2VmJ9y7XntRcNbMG6PWh_st.jpg";}" 

$data = unserialize($data); 
for($idata = 3; $idata <= count($data)-1; $idata += 4){ 
    echo $data[$idata].'<br />'; 
} 

如果你想mod运算符做到这一点,而不是:

$data = unserialize($data); 
$idata = 0; 
foreach($data as $dataitem){ 
    if(($idata % 4) == 3){ 
     echo $dataitem.'<br />'; 
    } 
} 

模是OPERAT或作为X把一个号码,返回余:

0 % 4 = 0 
1 % 4 = 1 
2 % 4 = 2 
3 % 4 = 3 
4 % 4 = 0 
5 % 4 = 1 
6 % 4 = 2 
7 % 4 = 3 
8 % 4 = 0 
9 % 4 = 1 
+0

那么....这是完美的,非常感谢:) – BigJobbies 2012-02-02 14:30:44

0

你可以简单的序列化返回的数据...那么你可以赶上