私はここで本当に奇妙な問題を抱えています。以下のコードを使用して、php経由でtxtファイルをサーバーにアップロードしています。
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="file" name="uploadfile">
<button>Submit</button>
</form>
ファイルをアップロードした後(これは正常に機能します)、次のコードを使用してコンテンツを配列に変換します。
$fp = @fopen($file, 'r');
if ($fp) {
$domains = explode("\n", fread($fp, filesize($file)));
}
次に、preg_matchを実行して、配列をフィルタリングします。
$list = preg_grep('/^[a-z]+\.com$/', $domains);
$ domainsにtxtファイルのデータが入力されていることを確認しましたが、print_r($ list)を実行すると、「array()」のみが返されます。
FTPで同じ正確なテキストファイルをアップロードしてprint_r($ list)を実行すると、正常に機能します。
また、FTPクライアントで同じテキストファイルをアップロードすると、「domains.txt」のファイルサイズがhtmlフォームを使用してアップロードする場合よりも小さくなることに気付きました。ここで何が起こっているのか分かりますか?