HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
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: /home/innocamp/public_html/wp-content/plugins/WP-FormBuilder/admin/classes/HashFormStrReader.php
<?php

defined('ABSPATH') || die();

class HashFormStrReader {

    private $pos = 0;
    private $max = 0;
    private $string;

    public function __construct($string) {
        $this->string = $string;
        $this->max = strlen($this->string) - 1;
    }

    public function read_until($char, $discard_char = true) {
        $value = '';
        while (null !== ($one = $this->read_one())) {
            if ($one !== $char || !$discard_char) {
                $value .= $one;
            }
            if ($one === $char) {
                break;
            }
        }
        return $value;
    }

    public function read($count) {
        $value = '';

        while ($count > 0 && !is_null($one = $this->read_one())) {
            $value .= $one;
            --$count;
        }
        return $this->strip_quotes($value);
    }

    private function read_one() {
        if ($this->pos <= $this->max) {
            $value = $this->string[$this->pos];
            $this->pos += 1;
        } else {
            $value = null;
        }
        return $value;
    }

    private function strip_quotes($string) {
        // Only remove exactly one quote from the start and the end and then only if there is one at each end.
        if (strlen($string) < 2 || substr($string, 0, 1) !== '"' || substr($string, -1, 1) !== '"') {
            // Too short, or does not start or end with a quote.
            return $string;
        }
        // Return the middle of the string, from the second character to the second-but-last.
        return substr($string, 1, -1);
    }

}