0

紛らわしい問題があります。

2 つのファイルがあり、どちらも対決を実行します。ただし、正しく解析できるファイルは 1 つだけのようです。

これが取引です。

ファイル 1は、PHP と AJAX を介して実行されます。

ファイル 2は、AJAX 要求を介して取得されます。ajax リクエストを処理するファイルには、このコードが含まれています。

アヤックスはこちら

ご覧のとおり、詳細を画面に表示する jQuery コードは、データベースからの直接の文字列ではなく、変数と JSON 文字列を除いてまったく同じです。

ファイル#1はマークダウンを正しく解析しませんが、ファイル2は...

これはファイル#1と#2のスクリーンショットです

ファイル #1

ファイル1が機能しない

ファイル #2

ファイル 2 の作業

これを引き起こしている可能性のあるものについて何か考えはありますか? また、修正に関するアイデアはありますか?

4

2 に答える 2

1

おそらく、ファイル 2 に次のものが含まれているためです。

  $copy = preg_replace('^(.*)\n(.*)^', '$1<br />$2', $result['copy']);
  $copy = preg_replace('/[\r]+/', '$1<br />$2', $result['copy']);

最初の preg_replace() を無視します。あなたがしたい:

  $copy = preg_replace('^(.*)\n(.*)^', '$1<br />$2', $result['copy']);
  $copy = preg_replace('/[\r]+/', '$1<br />$2', $copy);

これは、ファイル 1 に正しく実装したものです。これは、見方によっては、ファイル 1 の動作が正しく、ファイル 2 の動作が実際には正しくないことを意味します。

編集

あなたのコメントに答えるには:

置換 (ファイル 1 内):

   $copy = preg_replace('^(.*)\n(.*)^', '$1<br />$2', $js_r->copy);
   $copy = preg_replace('/[\r]+/', '$1<br />$2', $copy);

   $copy = preg_replace('/[\r]+/', '$1<br />$2', $js_r->copy);

それは望ましい効果を達成していますか?

于 2009-09-26T14:09:10.067 に答える
0

Ok、


そのため、ファイル内の改行の解析だったようです...

だから今読む

$copy = preg_replace("/\n/", "\\\\n", $js_r->copy);
$copy = preg_replace("/\r/", "\\\\r", $copy);

これは正しく機能し、両方のファイルを効率的に解析します

于 2009-09-27T21:06:45.840 に答える