Предположим, у меня есть файл MSWord source.doc со следующим содержимым "Содержимое файла Microsoft Word".
Например, я хотел бы открыть его через PHP и заменить слово «Microsoft» на «Openoffice» и сохранить результат в result.doc .
Вот код, использующий preg_replace
:
$content = file_get_contents( SOMEPATH . '/source.doc' );
$new_content = preg_replace( '/Microsoft/i', 'Openoffice', $content );
file_put_contents( SOMEPATH . '/target.doc', $new_content );
Или используя str_replace
:
$content = file_get_contents( SOMEPATH . '/source.doc' );
$new_content = str_replace( 'Microsoft', 'Openoffice', $content );
file_put_contents( SOMEPATH . '/target.doc', $new_content );
Ни один из них не работает. Код выполняется без каких-либо исключений, но target.doc совпадает с source.doc . Замена не выполняет.
Я пробовал много разных рецептов, таких как модификаторы регулярных выражений, iconv и т. Д., Но ничего не помогает.
var_dump
из $content
показывает необработанную структуру source.doc , которая полна необычных символов и, как я полагаю, некоторые из них прекращают сканирование str_replace
или preg_replace
. Не могу понять, какой это символ и что мне делать, если я его найду.
var_dump
из $new_content
идентичен $ content.
Спасибо за любую помощь!