自分で改行を宣言する単一のステートメントを作成しています。したがって、変数には改行が含まれているため、そこに改行が含まれています。次の 2 つのオプションがあります。
1: 改行を入れない
$sql = "UPDATE `key_values` SET ".
"`Value_Content` = '" . $this->db->escape($revisionValues['value']) . "', ".
"`Comments` = '" . $this->db->escape($revisionValues['comment']) . "', ".
"`Is_Active` = '" . $this->db->escape($revisionValues['actstate']) . "', ".
"`Is_Modified`='1' ".
"WHERE ".
"`Key_Value`='" . $candidateKey['key'] . "' ".
"AND `Email_Template`='" . $candidateKey['template'] . "' ".
"AND `Locale_ID`='" . $candidateKey['locale'] . "'";
2: 削除後
$sql = "UPDATE `key_values` SET
`Value_Content` = '" . $this->db->escape($revisionValues['value']) . "',
`Comments` = '" . $this->db->escape($revisionValues['comment']) . "',
`Is_Active` = '" . $this->db->escape($revisionValues['actstate']) . "',
`Is_Modified`='1'
WHERE
`Key_Value`='" . $candidateKey['key'] . "'
AND `Email_Template`='" . $candidateKey['template'] . "'
AND `Locale_ID`='" . $candidateKey['locale'] . "'";
$sql = str_replace(array(chr(10), chr(13)), '', $sql);
したがって、改行を検出すると、chr(10) または chr(13) がチェックされます。あなたのシステムに応じて、それらのいずれかまたは両方になる可能性があります。参照:改行は \n または \r\n ですか? ( \r=chr(13)
& \n=chr(10)
)
アップデート
token_get_all() から単一行の文字列を返したい場合は、次を使用できます。
<?php
$c = str_replace(array("\n","\r"), '', print_r(token_get_all('<?php echo; ?>'), true));
print $c;
// token_get_all() returns an array
// print_r(array, true) prints the array and the true param makes it return the output as a string
// replace the newline chars with nothing to make it single line
//single line output:
//Array( [0] => Array ( [0] => 372 [1] => 1 ) [1] => Array ( [0] => 316 [1] => echo [2] => 1 ) [2] => ; [3] => Array ( [0] => 375 [1] => [2] => 1 ) [4] => Array ( [0] => 374 [1] => ?> [2] => 1 ))
?>