HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/delta/wp-content/plugins/wp-smushit/core/parser/class-page-parser.php
<?php

namespace Smush\Core\Parser;


class Page_Parser {
	/**
	 * @var string
	 */
	private $page_url;
	/**
	 * @var string
	 */
	private $page_markup;
	/**
	 * @var Parser
	 */
	private $parser;

	public function __construct( $page_url, $page_markup ) {
		$this->page_url    = $page_url;
		$this->page_markup = $page_markup;
		$this->parser      = new Parser();
	}

	public function parse_page() {
		$page_markup  = $this->page_markup;
		$base_tag_url = $this->parser->get_base_url( $page_markup );
		$base_url     = $base_tag_url ?: $this->page_url;
		$styles       = $this->parser->get_inline_styles( $page_markup, $base_url );

		$composite_elements = $this->parser->get_composite_elements( $page_markup, $base_url );
		$page_markup        = $this->replace_composites_with_placeholders( $page_markup, $composite_elements );

		$elements        = $this->parser->get_elements_with_image_attributes( $page_markup, $base_url );
		$iframe_elements = $this->parser->get_iframe_elements( $page_markup, $base_url );

		return new Page(
			$this->page_url,
			$this->page_markup,
			$styles,
			$composite_elements,
			$elements,
			$iframe_elements
		);
	}

	/**
	 * @param $markup
	 * @param $composite_elements Composite_Element[]
	 *
	 * @return string
	 */
	private function replace_composites_with_placeholders( $markup, $composite_elements ) {
		$placeholder_replacement = new Placeholder_Replacement();
		if ( empty( $composite_elements ) ) {
			return $markup;
		}

		$html_elements = array_map( function ( $composite_element ) {
			return $composite_element->get_markup();
		}, $composite_elements );
		return $placeholder_replacement->add_placeholders( $markup, $html_elements );
	}
}