PHP Web-based Persian, English, and Arabic Number Converter

Convert Persian, English, and Arabic numbers easily with this web-based converter.

<?php

if (!class_exists('convert_numbers')) {

    class convert_numbers
    {
        private $arabic_numbers = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩', '٫');
        private $farsi_numbers = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '٫');
        private $english_numbers = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.');

        private $string = '';

        public function __construct($string = '')
        {
            $this->string = $string;
        }


        public function set($string = '')
        {
            $this->string = $string;
        }


        public function to_farsi()
        {
            $farsi = $this->arabic_to_farsi($this->english_to_farsi($this->string));
            return $farsi;
        }

        public function to_arabic()
        {
            $farsi = $this->farsi_to_arabic($this->english_to_arabic($this->string));
            return $farsi;
        }

        public function to_english()
        {
            $farsi = $this->arabic_to_english($this->farsi_to_english($this->string));
            return $farsi;
        }

        private function arabic_to_farsi($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->arabic_numbers, $this->farsi_numbers, $string);
        }

        private function farsi_to_arabic($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->farsi_numbers, $this->arabic_numbers, $string);
        }

        private function english_to_farsi($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->english_numbers, $this->farsi_numbers, $string);
        }

        private function farsi_to_english($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->farsi_numbers, $this->english_numbers, $string);
        }

        private function english_to_arabic($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->english_numbers, $this->arabic_numbers, $string);
        }

        private function arabic_to_english($string = '')
        {
            if (empty($string)) $string = $this->string;
            return str_replace($this->arabic_numbers, $this->english_numbers, $string);
        }
    }
}

$convert_numbers = new convert_numbers('2018-07-18');
echo $convert_numbers->to_farsi(); // ۲۰۱۸-۰۷-۱۸
echo $convert_numbers->to_arabic(); // ٢٠١٨-٠٧-١٨

$convert_numbers->set('١٤٣٩/١١/٠٤');
echo $convert_numbers->to_farsi(); // ۱۴۳۹/۱۱/۰۴
echo $convert_numbers->to_english(); // 1439/11/04

$convert_numbers->set('۱۳۹۷/۰۴/۲۷');
echo $convert_numbers->to_arabic(); // ١٣٩٧/٠٤/٢٧
echo $convert_numbers->to_english(); // 1397/04/27

?>