2017-02-17 8 views
1

PHPでサーバー上のファイルを開きます。ファイルは普通のようです。 PC上のメモ帳やテキストエディットで開きます。 PHPでさえ、私たちがエコーアウトするときにWebブラウザに問題なく表示できます。PHPでエンコードされたファイルを開く

しかし、私はstrpos()でそれを検索しようとすると、それは単一の文字以外は何も見つけることができません。 2文字以上の文字列を検索すると、何も見つかりません。

私はUTF-8にエンコードしようとしましたが、それをASCIIとして検出します。だから、すべてが正しいようだ。

私はファイルのうち、私が250文字まで読んでみようとしている部分も分離しました。彼らはすべて画面上でうまく見えます。

しかし、strposはそれを見つけることができません。私は自分のコードのすべての部分についてテストを実行しました。私はコードがあれば問題ないと思います。私が画面上に表示されている文字が、実際にそれらの文字が何であるかと正確には一致していないことから、私が信じる問題は、

私の最後の手段は、各文字を整数配列に変換する関数を書くことです(それが可能であれば)。そしてそれらをすべて文字列に変換し直します。この方法では、私たちが見る文字が実際のものであることを100%知っています。

誰かが私が逃した何かのために、より良いアプローチか、おそらくアイデアを持っていると願っていますか?私は以下のコード投稿します

:だけ明確にすること

$content = file_get_contents($file->getPathname()); // get the file contents 
$content = substr($content, 30, 300); // reduce the large file to just the first few lines 
$content = htmlspecialchars($content); // try to remove any special characters from the file 

$content = iconv('ASCII', 'UTF-8//IGNORE', $content); // encode to a friendly format 

$string = "JobName"; // this is the string i'm searching for 

if (strpos($content, $string) !== false) { 
echo "bingo"; 
} 

else { 
echo " not found "; 
} 

を、私は開いていたファイルは.DAT形式にデータを保存するPCプログラムから生成されます。私が言ったように、私は、PHPを含むどのプログラムを使っても、コンテンツを非常に簡単に見たり読むことができます。しかし、私が検索しようとすると、まったくコンテンツを認識しないかのようになります。

私はStackOverflowでファイルをアップロードする方法に気づいていませんが、誰かが私にその方法を教えてもらえれば喜んでファイル自体を投稿します。

+0

"hexeditor"を使用してそのファイルを調べ、そこで実際に使用されている文字を確認するだけです。 – arkascha

+0

コメントに_not_詳細を追加しないでください。あなたの質問の下には 'edit'リンクがあります。 _これを使って_。 – arkascha

+0

このファイルを提供できますか? –

答えて

0

ご協力いただきありがとうございますARKASCHA。私はオンラインHexEditorを見つけることができました。文字を見たとき、このファイルのすべての文字の間にNUL文字があるようです。それはおそらく私が定期的な視野でそれを見ることができなかった理由です。私は、ファイルからNUL文字を削除するために追加の関数を実行しなければなりませんでした。再度、感謝します。

関連する問題