2017-02-17 16 views
1

Я открываю файл на сервере с PHP. Файл кажется обычным. Он открывается в Блокноте и Textedit на ПК. Даже 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 "; 
} 

Просто чтобы быть ясно, файл я открываю генерируется из программы PC, которая хранит свои данные в формате .DAT. Как я уже сказал, я очень легко вижу и читаю контент, используя любую программу, включая PHP. но когда я пытаюсь выполнить поиск, он как бы не распознает контент вообще.

Мне неизвестно, как загрузить файл в StackOverflow, но если кто-то скажет мне, как это сделать, я с радостью опубликую сам файл.

+0

Просто используйте «hexeditor» для проверки этого файла, проверьте, какие символы действительно используются там. – arkascha

+0

Пожалуйста, не добавляйте детали в комментарии. Существует ссылка «edit» для ниже вашего вопроса. _Используй это_. – arkascha

+0

Можете ли вы предоставить этот файл? –

ответ

0

Большое спасибо за помощь ARKASCHA. Я смог найти онлайн-HexEditor, и когда я увидел символы, кажется, что в каждом файле присутствует символ NUL. вероятно, поэтому я не мог видеть его с обычным видом. Мне просто нужно было запустить дополнительную функцию, чтобы удалить NUL-символы из файла, а затем она работает как предполагается. Еще раз спасибо.

 Смежные вопросы

  • Нет связанных вопросов^_^