코드에서 슬래시가 추가 된 위치를 이해하려고합니다. Ignited Datatables (native-php-version)을 사용하여 MySQL 데이터의 아약스 테이블을 생성합니다.코드에서 슬래시를 제거하는 방법은 무엇입니까?
MySQL의 데이터가 원하는대로 표시되지만 점화되는 Datatables 기능을 사용하면 테이블에 추가 열을 추가 할 수 있으므로 문제가 거기에서 시작됩니다.
->add_column('edit', '<a class="btn btn-mini btn-success" data-toggle="modal" href="#?page=customers-database-edit&id=$1">Edit</a>', 'face_id');
내가 추가 해요 여분의 열이 해당 링크를 포함해야하지만 어떤 이유에서 JSON이이 방법으로 생성됩니다 :
\n<a class="\"btn" btn-mini="" btn-success\"="" data-toggle="\"modal\"" href="\"?page=customers-database-edit&id=3\"">Edit<\/a> \n</a>
그건 내가 그 여분의 열을 추가 initialize가 방법
그래서 코드가 깨져서 너무 많은 수의 슬래시가 발생한다는 것을 알 수 있습니다.
링크 추가 열 것을이 코드 평화를 추가하기위한 책임을지고있는 것입니다 : 그 슬래시가 추가되는 경우
public function add_column($column, $content, $match_replacement = NULL)
{
$this->add_columns[$column] = array('content' => $content, 'replacement' => $this->explode(',', $match_replacement));
return $this;
}
foreach($this->add_columns as $field => $val)
if($this->check_mDataprop())
$aaData[$row_key][$field] = $this->exec_replace($val, $aaData[$row_key]);
else
$aaData[$row_key][] = $this->exec_replace($val, $aaData[$row_key]);
protected function exec_replace($custom_val, $row_data)
{
$replace_string = '';
if(isset($custom_val['replacement']) && is_array($custom_val['replacement']))
{
foreach($custom_val['replacement'] as $key => $val)
{
$sval = preg_replace("/(?<!\w)([\'\"])(.*)\\1(?!\w)/i", '$2', trim($val));
if(preg_match('/(\w+)\((.*)\)/i', $val, $matches) && function_exists($matches[1]))
{
$func = $matches[1];
$args = preg_split("/[\s,]*\\\"([^\\\"]+)\\\"[\s,]*|" . "[\s,]*'([^']+)'[\s,]*|" . "[,]+/", $matches[2], 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
foreach($args as $args_key => $args_val)
{
$args_val = preg_replace("/(?<!\w)([\'\"])(.*)\\1(?!\w)/i", '$2', trim($args_val));
$args[$args_key] = (in_array($args_val, $this->columns))? ($row_data[($this->check_mDataprop())? $args_val : array_search($args_val, $this->columns)]) : $args_val;
}
$replace_string = call_user_func_array($func, $args);
}
elseif(in_array($sval, $this->columns))
$replace_string = $row_data[($this->check_mDataprop())? $sval : array_search($sval, $this->columns)];
else
$replace_string = $sval;
$custom_val['content'] = str_ireplace('$' . ($key + 1), $replace_string, $custom_val['content']);
}
}
return $custom_val['content'];
}
내가 조금 혼란 스러워요 및 whay 링크 코드가 깨진? 여기
는 JSON가 생성되는 방법입니다
protected function jsonify($result = FALSE)
{
if(is_null($result)) return 'null';
if($result === FALSE) return 'false';
if($result === TRUE) return 'true';
if(is_scalar($result))
{
if(is_float($result))
return floatval(str_replace(',', '.', strval($result)));
if(is_string($result))
{
static $jsonReplaces = array(array('\\', '/', '\n', '\t', '\r', '\b', '\f', '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $result) . '"';
}
else
return $result;
}
$isList = TRUE;
for($i = 0, reset($result); $i < count($result); $i++, next($result))
{
if(key($result) !== $i)
{
$isList = FALSE;
break;
}
}
$json = array();
if($isList)
{
foreach($result as $value)
$json[] = $this->jsonify($value);
return '[' . join(',', $json) . ']';
}
else
{
foreach($result as $key => $value)
$json[] = $this->jsonify($key) . ':' . $this->jsonify($value);
return '{' . join(',', $json) . '}';
}
}
}
귀하의 예는 실제적인 JSON, 나는 그것이 JSON에 포함 된 문자열의 일부입니다 가정합니다. 실제 생성 된 JSON을 게시하십시오. 슬래시가 올바르게 배치 될 가능성이 큽니다. – lanzz