2009-11-23 3 views
1

На win32 Я используюальтернатива файл (1) для JavaScript/CSS MimeType

$ file -v 
file-5.03 
magic file from C:\PROGRA~1\gnuwin32/share/misc/magic 

но его дает странные результаты

foo.css; text/x-c; charset=utf-8 
json2.js; text/x-c; charset=us-ascii 
foo.js; text/x-c++; charset=utf-8 
bar.js; text/plain; charset=utf-8 

Любой получить подобные результаты? лучшие результаты? Кто-нибудь знает об альтернативе?

Благодаря

ответ

1

Я не думаю, что файл (1) команда может сделать это. Команда «file» ищет магические строки в файле - например, строка «GIF89a» в начале файла GIF. Файлы CSS и JS не являются самоочевидными, поэтому вам придется сделать что-то более сложное.

Если у вас есть доступ к заголовку Content-Type, возвращаемому сервером, это будет намного надежнее, чем попытка угадать тип, просмотрев содержимое файла.

Если у вас есть только содержимое файла, вы можете выполнить собственный поиск строк, таких как «function» или «var», которые вряд ли будут в файле CSS. Если вы их найдете, это, вероятно, JavaScript. Конечно, это несовершенная эвристика - может быть фоновое изображение с именем «function.png».

Идти другим способом было бы более подверженным ошибкам, поскольку JavaScript может управлять стилями CSS ... было бы необычно найти свойства CSS, такие как «text-decoration» в JS-файле.

Или вы можете попробовать запустить файл через синтаксический анализатор CSS или JS. Если вы получаете массу ошибок при анализе как CSS, это, вероятно, не файл CSS :).

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