public function msisdn($strMsisdn) { if (!Validator::numeric()->notEmpty()->length(10, 12)->not(Validator::startsWith('0'))->validate($strMsisdn)) { $this->objLogger->addError('MSISDN must be a numeric string between 10 and 12 characters long in international format'); throw new SMSMessageException('MSISDN must be a numeric string between 10 and 12 characters long in international format'); } $this->strMsisdn = $strMsisdn; $this->objLogger->addDebug('MSISDN has been set to ' . $strMsisdn); return $this; }
<?php define('MAX_SIZE', 3 * 1024 * 1024); require "vendor/autoload.php"; use Respect\Validation\Validator as v; $url = $_GET['url']; $url_parts = parse_url($url); //error_log(print_r($url_parts,1)); // check valid url. if (!v::arr()->key('scheme', v::startsWith('http'))->key('host', v::domain())->key('path', v::string())->validate($url_parts)) { die_and_log($status = 400, 'invalid url', $url); } // head access $c = new Curl(); $c->setHeader('X-Forwarded-For', getRemoteIP()); $c->setOpt(CURLOPT_NOBODY, true); $c->setOpt(CURLOPT_RETURNTRANSFER, true); $c->error(function () { die_and_log($status = 500, "head request error"); }); $c->get($url); error_log($url); //error_log(print_r($c->response_headers,1)); // check head res $length = null; $content_type = null; foreach ($c->response_headers as $header) { if (preg_match("/\\AContent-Length/i", $header)) { $length = (int) explode(":", $header, 2)[1]; } else { if (preg_match("/\\AContent-Type/i", $header)) {