public function isDomainValid($domain, $root, $key) {
$len = strlen($domain);
if ($len < 3 || $len > 100) return new PwError('REWRITE:domain.length');
if ($domain[0] < 'a' || $domain[0] > 'z') return new PwError('REWRITE:domain.first.illegal');
if (!preg_match('/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i', $domain)) return new PwError('REWRITE:domain.char.num');
$result = $this->_domainDs()->getByDomainAndRoot($domain, $root);
if ($result && $result['domain_key'] != $key)
return new PwError('REWRITE:domain.exist');
$domain_hold = Wekit::C('domain', 'domain.hold');
$holds = explode(',', $domain_hold);
foreach ($holds as $v) {
$preg = str_replace('*', '.*?', $v);
if (preg_match("/^$preg$/i", $domain))
return new PwError(array('REWRITE:domain.hold', array($v)));
}
return true;
}
/**
* 检测域名是否合法
*
* @param unknown_type $domain
* @param unknown_type $type
* @param unknown_type $key
* @return PwError|boolean
*/
public function isNameValid($domain, $key) {
$len = strlen($domain);
if ($len < 3 || $len > 100) return new PwError('REWRITE:domain.length');
if ($domain[0] < 'a' || $domain[0] > 'z') return new PwError('REWRITE:domain.first.illegal');
if (!preg_match('/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i', $domain)) return new PwError('REWRITE:domain.char.num');
$result = $this->_domainDs()->getByDomain($domain);
if (count($result) > 1 || ($result && $result[0]['domain_key'] != $key))
return new PwError('REWRITE:domain.exist');
$domain_hold = Wekit::C('domain', 'domain.hold');
$holds = explode(',', $domain_hold);
foreach ($holds as $v) {
$preg = str_replace('*', '.*?', $v);
if (preg_match("/^$preg$/i", $domain))
return new PwError(array('REWRITE:domain.hold', array($v)));
}
return true;
}