将Array值替换为其他preg_replaced值

时间:2017-04-24 01:10:42

标签: php arrays preg-replace

我有一个数组,我知道它的值是来自某个地方的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'

1 个答案:

答案 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);
}