PHP로 서버에 파일을 여는 중입니다. 파일은 평범한 것 같습니다. 메모장과 텍스트 편집기에서 PC로 열립니다. PHP조차도 웹 브라우저에서 아무런 문제없이 표시 할 수 있습니다.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에서 파일을 업로드하는 방법을 모르지만 다른 사람이 파일을 어떻게 작성하는지 알려주면 기꺼이 파일 자체를 게시합니다.
"hexeditor"를 사용하여 해당 파일을 검사하고 거기에서 실제로 사용되는 문자를 확인하십시오. – arkascha
주석에 _not_ 세부 사항을 추가하지 마십시오. 귀하의 질문에 대한 '편집'링크가 있습니다. _그걸 써_. – arkascha
이 파일을 제공 할 수 있습니까? –