2015-08-09 4 views
0

Я делаю php-проект, используя php excel .. Я уже создал php-класс для чтения листа excel. Этот класс возвращает простую строку json. Эта строка json, которую я буду использовать для отображения таблицы данных на веб-странице. Но эта строка json не может содержать никакой json-символ. Поэтому пользователь не может вводить некоторый символ json в листе excel. В противном случае возникает множество ошибок при кодировании json-строки.Как избежать символа json (Двойная цитата, Запятая) в php

Каков наилучший способ предотвратить эту проблему? есть хороший способ прочитать листы excel (используя библиотеку)?

+0

вы пытаетесь, addslashes() или stripslashes ()? – CyC0der

ответ

0

вы должны добавить косую черту перед кавычками вы можете использовать эту функцию

<?php 
$str = "Is your name O'Reilly?"; 

// Outputs: Is your name O\'Reilly? 
echo addslashes($str); 
?> 

ОБНОВЛЕНО

продвинутой функцию для JSON

function json_string_encode($str) { 
    $callback = function($match) { 
     if ($match[0] === '\\') { 
      return $match[0]; 
     } else { 
      $printable = array('"' => '"', '\\' => '\\', "\b" => 'b', "\f" => 'f', "\n" => 'n', "\r" => 'r', "\t" => 't'); 
      return isset($printable[$match[0]]) 
        ? '\\'.$printable[$match[0]] 
        : '\\u'.strtoupper(current(unpack('H*', mb_convert_encoding($match[0], 'UCS-2BE', 'UTF-8')))); 
     } 
    }; 
    return '"' . preg_replace_callback('/\\.|[^\x{20}-\x{21}\x{23}-\x{5B}\x{5D}-\x{10FFFF}/u', $callback, $str) . '"'; 
} 
Смежные вопросы