Laravel SVG validation - JamesDeGreese/Boartech-Comunity GitHub Wiki

/* 
* Валидатор запросов в php работает коряво для некоторых svg файлов, по причине отсутствия в них '<?xml' тега.
* Данная функция проверяет и добавляет его в начало файла.
*/

function insertXmlDeclarationToSvgFileIfItMissed()
    {
        /** @var UploadedFile $file */
        $file = $this->file('icon_upload');

        if ($file
            && $file->isValid()
            && $file->getClientOriginalExtension() === 'svg'
            && $file->guessExtension() !== 'svg') {
            try {
                $content = \File::get($file->getRealPath());

                if (!str_contains($content, '<?xml')) {
                    \File::prepend($file->getRealPath(), '<?xml version="1.0" encoding="UTF-8"?>');
                }

            } catch (\Exception $e) {
            }
        }
    }
`