1

なぜこのコードなのか、誰でも説明できますか

$string='6аd_ТЕХТ GOOD_TEXT';
$words = preg_split('/\s+/', $string, NULL, PREG_SPLIT_NO_EMPTY);

var_dump($words);

ディスプレイ

array(2) { [0]=> string(8) "6àd_ÒÅÕÒ" [1]=> string(9) "GOOD_TEXT" }

それ以外の

array(2) { [0]=> string(8) "6аd_ТЕХТ" [1]=> string(9) "GOOD_TEXT" }

この問題について読みましたが、追加 /u :

preg_split('/\s+/', $string, NULL, PREG_SPLIT_NO_EMPTY);// '/\s+/'

なる

preg_split('/\s+/u', $string, NULL, PREG_SPLIT_NO_EMPTY);// '/\s+/u'

役に立ちません。この問題を解決するにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

1

提供された例には存在しない、コード内で別のことが起こっています。提供された例をテストしたところ、期待どおりに動作しました。これ実際に発生している可能性が低い場合 (および に影響を与える他のコードがない$string場合)、これは使用している特定の PHP バージョンのバグである可能性があり、PHP をアップグレードすることで解決できます (ただし、問題になる可能性はほとんどありません)。 PHPで)。

于 2012-04-17T21:56:57.337 に答える
0

...スラッシュだと言いましたが、どうやらそれを機能させたのはutf-8のものでした。

編集:残り​​を削除したところ、ブラウザーで機能させるために必要なのはxml行だけであることがわかりました。

<?php
ini_set('default_charset','utf-8');
header('Content-type: text/html; charset=utf-8');

echo '<?xml version="1.0" encoding="UTF-8"?'.'>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head><body><pre>
';

$string = "6аd_ТЕХТ GOOD_TEXT";
var_dump(preg_split('/\s+/u', $string, NULL, PREG_SPLIT_NO_EMPTY));

echo '</pre></body></html>';

これは出力です:

array(2) {
  [0]=>
  string(13) "6аd_ТЕХТ"
  [1]=>
  string(9) "GOOD_TEXT"
}
于 2012-04-17T21:56:48.837 に答える