PHP - 序列化的xml图像替换

时间:2013-07-04 11:08:32

标签: php regex preg-replace

我遇到问题:s:64:"http://urlurl.com/wp-content/uploads/2013/03/30.jpg";

这是包含序列化内容的xml文件的片段。 我需要浏览整个文件并用新图像替换每个图像(jpg或png)。 AND:用我的新字符数替换s:64。所以我需要在每个jpg或png文件之前替换s:whatever的每个实例并替换图像文件。

有正则表达的任何想法吗?

输入: s:5:"image";s:51:"http://urlurl.com/wp-content/uploads/2012/07/06.jpg";s:7:"id_base";a:6:{s:7:"id_base";s:15:"aq_column_block";s:4:"name";s:6:"Column";s:5:"order";s:1:"6";s:4:"size";s:5:"span4";s:6:"parent";s:1:"0";s:6:"number";s:1:"6";}s:10:"aq_block_9";a:14:{s:7:"content";s:5:"image";s:51:"http://urlurl.com/wp-content/uploads/2011/12/10.jpg";

期望的输出: s:5:"image";s:7:"MYIMAGE";s:7:"id_base";a:6:{s:7:"id_base";s:15:"aq_column_block";s:4:"name";s:6:"Column";s:5:"order";s:1:"6";s:4:"size";s:5:"span4";s:6:"parent";s:1:"0";s:6:"number";s:1:"6";}s:10:"aq_block_9";a:14:{s:7:"content";s:5:"image";s:7:"MYIMAGE";

所以基本上s:51:"http://urlurl.com/wp-content/uploads/2012/07/06.jpg";s:51:"http://urlurl.com/wp-content/uploads/2011/12/10.jpg";更改为s:7:"MYIMAGE";

谢谢, 保罗

1 个答案:

答案 0 :(得分:0)

我几天前使用记事本++搜索完成了这项工作,并用这些替换为正则表达式函数:

表示块元素:s:[0-9]+:\"([^s:]*)(\.jpg|\.png)\";

表示普通图片:s:[0-9]+:\"http.*?(\.jpg|\.png)\";