我有一个数组,我知道它的值是来自某个地方的JPG
我需要转到返回该数组的每个值并preg_replace一些字符
然后将返回值的值设置为其他值
这是代码,这是我尝试过的
//first piece of code
$data['images'] = array();
foreach ($single['PictureURL'] as $ispec) {
$data['images'][] = $ispec;
$ispec = preg_replace('/\$_[0-9]+.JPG\b/i', '$_10.JPG', $ispec);
$file = 'C:\wamp64\www\mz\images1.txt';
file_put_contents ($file, $ispec, FILE_APPEND);
//images1.txt shows all images returned fine with modified strings
}
//second piece of code
$product->imageUrl = $data['images'][0];
unset($data['images'][0]);
$product->subImageUrl = $data['images'];
$file = 'C:\wamp64\www\mz\images3.txt';
file_put_contents ($file, $data['images'], FILE_APPEND);
//images3.txt shows all the images returned but without being modified?? WHY??!
第一段代码正在处理所有值,替换工作正常。
第二段代码是我的问题,它返回旧的无修改图像的值,我不
我需要在写入之前修改图像 '$ product-> imageUrl& $产品 - > subImageUrl'
答案 0 :(得分:1)
问题很简单。您已经在修改数据后进行了修改
将其存储在$data['images']
中。要解决此问题,只需将此行移至
在preg_replace
之后:
foreach ($single['PictureURL'] as $ispec) {
$ispec = preg_replace('/\$_[0-9]+.JPG\b/i', '$_10.JPG', $ispec);
$data['images'][] = $ispec;
$file = 'C:\wamp64\www\mz\images1.txt';
file_put_contents ($file, $ispec, FILE_APPEND);
}