HEX
Server: Apache/2
System: Linux cat17246.lnwhostname.com 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64
User: firststeps (1017)
PHP: 7.3.33
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/firststeps/public_html/wp-content/plugins/jetformbuilder/includes/classes/regexp-tools.php
<?php


namespace Jet_Form_Builder\Classes;

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}

class Regexp_Tools {

	private $field_names_regexp = array();
	private $macro_exist        = false;

	public function has_macro( $value ): bool {
		if ( ! is_scalar( $value ) || ! is_string( $value ) ) {
			return false;
		}

		if ( preg_match( '/%[\w\-]+::.*?%/', $value ) ) {
			return true;
		}

		$this->macro_exist = false;

		preg_replace_callback_array(
			$this->field_names_regexp,
			$value
		);

		return $this->macro_exist;
	}

	public function set_field_names( array $names ) {
		foreach ( $names as $name => $counter ) {
			$this->field_names_regexp[ "/%({$name}).*?%/" ] = array( $this, 'regexp_replace_callback' );
		}
	}

	/**
	 * @param array $matches
	 *
	 * @return mixed
	 */
	private function regexp_replace_callback( array $matches ) {
		$this->macro_exist = true;

		return $matches[0];
	}

	/**
	 * @param string $content
	 *
	 * @return array
	 */
	public function get_form_ids_from_shortcode( string $content ): array {
		$matches = array();

		preg_match_all( '/\[jet_fb_form.*?form_id="(\d+)"/', $content, $matches );

		return $matches[1] ?? array();
	}

	public function get_form_ids_from_block( string $content ): array {
		$matches = array();

		preg_match_all(
			'/<!-- wp:jet\-forms\/form\-block.*?"form_id":(\d+)/',
			$content,
			$matches
		);

		return $matches[1] ?? array();
	}

}