我可以将带有json_encode的字符串转换回textarea中的可读html吗?

时间:2015-07-30 18:28:26

标签: php html json laravel wysiwyg

我创建了一个带有wysywig文本编辑器的textarea。用户将单击进入textarea并开始像任何文本编辑器一样输入。然后,他们将使用该文本保存表单,然后使用$data['description'] = json_encode($description_data);将数据保存到数据库中,这会将编码的字符串保存到数据库中。

以下是我在db列中的内容:

""<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n""

这种格式的原因是因为它是某些json输出的一部分,作为api的一部分,应用程序需要以这种格式转换文本。

我的主要问题是,当管理员在textarea中编辑该数据时,文本会被添加回上面的数据,如下所示:

the text editor with jsin in it

这个文本不需要包含内容,并且在textarea中是普通的普通html。这可能吗?

以下是控制器功能:

public function store(Offer $offer)
    {

        $offerId = $offer['id'];

        $data = Input::except('image','featured');
        //$featured_data = array( 'offer_date' => $data['offer_date'], 'starttime' => $data['offer_start_time'], 'endtime' => $data['offer_end_time'] );
        $description_data = $data['description'];
        $validation = Validator::make($data, Offer::$rules);


        if ($validation->fails()) {
            return redirect('offers')->with('message', $validation->errors());
        } else {
            $file = Input::file('image');
            $filename = date('Y-m-d-H')."-".$file->getClientOriginalName();

            $path = storage_path('app/uploads/' . $filename);
            Image::make($file->getRealPath())
              ->resize(600, 600)
              ->save($path);

              $data['image'] = 'storage/app/uploads/'.$filename;
              $data['description'] = json_encode($description_data);

            Offer::create( $data );
            return redirect('offers')->with('message', 'Offer added!');
        }

    }

我的形式是:

<div style="clear: both;" class="form-group">
    {!! Form::label('description', 'Offer Description:') !!}
    {!! Form::textarea('description', null, array('id'=>'editor1','class' => 'ckeditor form-control')) !!}
</div>

希望这可以实现。

2 个答案:

答案 0 :(得分:0)

输出时只使用json_decode。它与json_encode相反。

答案 1 :(得分:0)

这是一个json编码的字符串,虽然它不是唯一有效的。

试试这个:

$var_str = '<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n';

$str_in = '{"s": "'. $var_str . '"}';

$sArr = json_decode($str_in, true);

$cleanString = $sArr['s'];

或javascript中的等价物。

PHP在这里小提琴:http://sandbox.onlinephpfunctions.com/code/625c6ffd9d31215f8f73f6e02b5328e0fdf807e7