Esempio n. 1
0
 /**
  * Converts domain part of the address to punycode if needed.
  *
  * @param string $address The address that should be normalized.
  * @return string
  */
 private static function normalizeAddress($address)
 {
     $chunks = explode('@', $address);
     if (count($chunks) < 2) {
         // The address has no "@" character thus it's not a real email
         // address and should not be normalized at all.
         return $address;
     }
     $punycode = new Punycode();
     // Domain part should be converted to punycode to play nice with IDN.
     $domain = $punycode->encode(array_pop($chunks));
     // Local part should be left as is.
     $local_part = implode('@', $chunks);
     return $local_part . '@' . $domain;
 }
Esempio n. 2
0
 /**
  * Encode an internationalized domain name
  *
  * @param string $strDomain The domain name
  *
  * @return string The encoded domain name
  */
 public static function encode($strDomain)
 {
     $objPunycode = new Punycode();
     return $objPunycode->encode($strDomain);
 }
Esempio n. 3
0
 protected function isValidHostPattern(array $data)
 {
     $data = explode($this->delimiter, $this->punycode->encode(implode($this->delimiter, $data)));
     $res = preg_grep('/^[0-9a-z]([0-9a-z-]{0,61}[0-9a-z])?$/i', $data, PREG_GREP_INVERT);
     return 0 == count($res);
 }
Esempio n. 4
0
File: URL.php Progetto: sqrt-pro/url
 /** Возвратить адрес как строку */
 public function asString($absolute = false)
 {
     $url = '/';
     if ($absolute) {
         $puny = new Punycode();
         $url = $this->getScheme() . '://' . $puny->encode($this->getHost()) . '/';
     }
     if ($a = $this->getArguments()) {
         foreach ($this->getArguments() as $str) {
             $url .= urlencode($str) . '/';
         }
     }
     $url .= $this->buildParams();
     if ($fn = $this->getFileName(true)) {
         $url .= urlencode($fn);
     }
     return $url;
 }
Esempio n. 5
0
 /**
  * Encode an internationalized domain name
  *
  * @param string $domain The domain name
  * @return string The encoded domain name
  */
 protected function encode($domain)
 {
     $objPunycode = new Punycode();
     return $objPunycode->encode($domain);
 }