Как заменит строку в pptx(файл презентации) на свою?

Для замены строки в файле презентации формата pptx, вам потребуется использовать библиотеку PHP, которая поддерживает работу с файлами PowerPoint.

Одна из таких библиотек - это PHPPresentation, которая предоставляет удобные инструменты для работы с pptx-файлами. Для начала, вам потребуется установить эту библиотеку с помощью Composer, если вы еще этого не сделали:

composer require phpoffice/phppresentation

После установки библиотеки вы сможете использовать ее для замены строки в pptx-файле. Вот пример кода, который демонстрирует этот процесс:

<?php
require_once 'vendor/autoload.php';

use PhpOfficePhpPresentationPhpPresentation;
use PhpOfficePhpPresentationIOFactory;
use PhpOfficePhpPresentationShapeRichTextTextRun;
use PhpOfficePhpPresentationShapeRichTextParagraph;
use PhpOfficePhpPresentationStyleAlignment;
use PhpOfficePhpPresentationStyleColor;

// Открываем существующий pptx-файл
$presentation = IOFactory::load('path/to/presentation.pptx');

// Получаем доступ к слайдам презентации, выбираем первый слайд
$slides = $presentation->getAllSlides();
$slide = $slides[0];

// Получаем все формы на слайде
$shapes = $slide->getShapeCollection();

// Проходимся по каждой форме и заменяем текст
foreach ($shapes as $shape) {
    // Проверяем, является ли форма формой с текстом
    if ($shape instanceof PhpOfficePhpPresentationShapeRichTextRichText) {
        // Проходимся по каждому абзацу текста
        foreach ($shape->getParagraphs() as $paragraph) {
            foreach ($paragraph->getTextRuns() as $textRun) {
                // Заменяем искомую строку на новую
                $textRun->setText(str_replace('Искомая строка', 'Новая строка', $textRun->getText()));
                // Меняем цвет текста на красный
                $textRun->getFont()->setColor(new Color(Color::COLOR_RED));
                // Меняем выравнивание текста по центру
                $paragraph->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
            }
        }
    }
}

// Сохраняем результат в новый pptx-файл
$writer = IOFactory::createWriter($presentation, 'PowerPoint2007');
$writer->save('path/to/modified_presentation.pptx');

В приведенном коде мы открываем существующий pptx-файл с помощью IOFactory::load, затем выбираем первый слайд и получаем доступ к формам на слайде. Мы проверяем каждую форму и, если она является формой с текстом, проходимся по каждому абзацу текста и каждому объекту TextRun в абзаце. Мы заменяем искомую строку на новую с помощью str_replace, а затем меняем цвет текста, выравнивание и прочие стили, используя методы библиотеки PHPPresentation. В конце сохраняем измененную презентацию в новый pptx-файл с помощью IOFactory::createWriter.

Вам необходимо заменить 'path/to/presentation.pptx' на путь к вашему pptx-файлу. Результат будет сохранен в файл 'path/to/modified_presentation.pptx'.