PrimitiveInet.class.php

Go to the documentation of this file.
00001 <?php
00002 /****************************************************************************
00003  *   Copyright (C) 2007 by Konstantin V. Arkhipov                           *
00004  *                                                                          *
00005  *   This program is free software; you can redistribute it and/or modify   *
00006  *   it under the terms of the GNU Lesser General Public License as         *
00007  *   published by the Free Software Foundation; either version 3 of the     *
00008  *   License, or (at your option) any later version.                        *
00009  *                                                                          *
00010  ****************************************************************************/
00011 
00015     final class PrimitiveInet extends BasePrimitive
00016     {
00017         public function import($scope)
00018         {
00019             if (!BasePrimitive::import($scope))
00020                 return null;
00021             
00022             if (
00023                 is_string($scope[$this->name])
00024                 && (($length = strlen($scope[$this->name])) < 16)
00025                 && (substr_count($scope[$this->name], '.', null, $length) == 3)
00026                 && (ip2long($scope[$this->name]) !== false)
00027             ) {
00028                 $this->value = $scope[$this->name];
00029                 
00030                 return true;
00031             }
00032             
00033             return false;
00034         }
00035     }
00036 ?>