0

JSON 通配符替换值

我的目的是在我的幻想框中添加一个动态值,我必须生成一个从数据库中获取的 JSON。

这是我在 Code Igniter 模型中的当前代码:

     function get_gallery_list($album) {
        $query = $this->db->query('SELECT id, img_name, caption FROM tb_gallery WHERE album = "'.$album.'"');
        $tags = array('img_name', 'caption');
        $replacementTags = array('html', 'title');
        $json = str_replace($tags, $replacementTags, json_encode($query->result()));
        $search_array = array_fill(0, sizeof($replacements), $search_pattern);
        $result = preg_replace($search_array, $replacements, $subject, 1);
        return $json;
     }

    //img_name is replace with html, caption = title.
    /* returns: [{"id":"1","html":"roadshow2012_1.jpg","title":"WOW"},{"id":"2","html":"roadshow2012_1.jpg","title":"Wew"}] */

我的问题是,如何在“.jpg”值中添加值?

例子:

从“roadshow2012_1.jpg”到“directlink-to-localhost/images/gallery/roadshow2012/roadshow2012_1.jpg”

非常感谢那些回答的人!:D

4

1 回答 1

0

当您可以这样做时,您不会这样做。它的工作量更少,其他人也更容易遵循

$sql='SELECT id, 
        CONCAT("directlink-to-localhost/images/gallery/",img_name) AS html, 
        caption AS title 
    FROM tb_gallery 
    WHERE album = "'.$album.'"';
$query = $this->db->query($sql);
return json_encode($query->result());

...

我真的不应该按照你的要求发布如何做,因为它有点生气,但如果你必须......

当 str_replace 更快时,您没有充分理由使用 preg_replace 。

$query = $this->db->query('SELECT id, img_name, caption FROM tb_gallery WHERE album = "'.$album.'"');
$find = array('"img_name":"', '"caption"');
$replace = array('"html":"directlink-to-localhost/images/gallery/', '"title"');
$result=str_replace($find, $replace, json_encode($query->result());
return $json;

我看不到 db 类,所以假设 query->result() 符合您的预期。

于 2013-02-14T11:23:41.830 回答