Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Полезные (интересные и оригинальные) решения

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Открыть новую тему     Написать ответ в эту тему

SafeWay



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Начну:

Код:
 
  function err_handler ($errno, $errstr, $errfile, $errline) {
    global $display_errors;
    if(($errno != E_NOTICE && $errno != E_WARNING) && $display_errors){
      echo '';
    }
  }
  $error_flags = E_ALL & ~E_NOTICE;
  @error_reporting($error_flags);
  @ini_set ('error_reporting', $error_flags);
  $old_error_handler = set_error_handler("err_handler");
 

 
Бывает полезным, убивает все нотайсы, выводы ошибок и прочее.
 
ЗЫ: Желательно прикрепить.



Публикуем решения, а не задаем вопросы!
Тех же, кто этого не понимает, будем БАНИТЬ!  
Тема именно для уникальных, оригинальных и красивых решений. Если ты только взялся изучать php - не стоит сюда писать, так как, заведомо, у тебя не будет такого решения
 
ps: выделил специально для тех, у кого проблемы со зрением.





Цитата:
ЗЫ: Желательно прикрепить.
В ПМ по этому поводу писать надо. — Svarga.

Всего записей: 365 | Зарегистр. 28-12-2003 | Отправлено: 07:30 26-07-2004 | Исправлено: Cheery, 16:57 25-03-2007
The_S

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Думаю по теме:
Одна фирма проводит своеобразный конкурс на "самую полезную функцию" на PHP. Призы (Ноут, Zend Studio 8, Книга).
 
Принять участие в конкурсе, отправив свою функцию (или класс) можно тут http://projects.westhost.com/contest/php/
 
Список решений: http://projects.westhost.com/contest/php/snippet/listing
На данный момент ~ 125 штук.
 
Довольно все стандартные и примитивные (типа ЧПУрлов и т.п.) , но есть и реально оригинальные и полезные.

Всего записей: 188 | Зарегистр. 13-09-2006 | Отправлено: 15:16 25-02-2011 | Исправлено: The_S, 15:19 25-02-2011
bishopik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Всего записей: 21 | Зарегистр. 26-12-2010 | Отправлено: 15:42 02-05-2011 | Исправлено: bishopik, 15:44 02-05-2011
Netsu



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Функция ресайзит картинки, в том числе анимированные gifы. Если будет не хватать памяти, то выведет ошибку, но не прервет работу скрипта. Требуется imagick.
$image['md5'] - название файла
200 - ширина получившейся картинки
 

Код:
function parse_make_thumb($image) {
 
  // создаем превью
  if ($image['width'] <= 200) {
 
    file_put_contents("thumbs/".$image['md5'].".".$image['type'], file_get_contents("images/".$image['md5'].".".$image['type']));
    return;
 
  } else {
 
    $xscale = $image['width'] / 200;
    $new_width = round($image['width'] * (1 / $xscale));
    $new_height = round($image['height'] * (1 / $xscale));
 
  }
 
  $thumb = new Imagick();
 
  try {
 
    $thumb->readImage("images/".$image['md5'].".".$image['type']);
 
  }
 
  catch (ImagickException $e) {
 
    echo "<center><h3>Непотянуло файл: ".$image['md5'].".".$image['type']."</h3></center>";
    return 0;
 
  }
  //делаем превью, размер меньше, чем у фона, чтобы было куда впихнуть тень
  //   $thumb->thumbnailImage($new_width, $new_height);
  if ($thumb->getNumberImages() > 1) {
 
    foreach ($thumb as $frame) {
 
      $frame->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);
 
    }
    //записываем картинку
    $thumb->writeImages("thumbs/".$image['md5'].".".$image['type'], 1);
 
  } else {
 
//     $thumb->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);
 
    try {
 
      $thumb->thumbnailImage(200, null);
 
    }
 
    catch (ImagickException $e) {
 
      echo "<center><h3>Непотянуло файл: ".$image['md5'].".".$image['type']."</h3></center>";
      return 0;
 
    }
 
    $thumb->writeImage("thumbs/".$image['md5'].".".$image['type']);
 
  }
  //подчищаем за собой
  $thumb->destroy();
 
  return;
 
}

Всего записей: 33 | Зарегистр. 31-03-2010 | Отправлено: 05:01 04-05-2011
alyent



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
удалено...

Всего записей: 1087 | Зарегистр. 09-03-2002 | Отправлено: 03:58 15-06-2011 | Исправлено: alyent, 04:09 15-06-2011
alex lego

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.

Всего записей: 57 | Зарегистр. 28-02-2010 | Отправлено: 18:29 20-06-2011
IFKey



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мой класс для вывода графиков Google Chart Tools: http://code.google.com/intl/ru-RU/apis/chart/interactive/docs/gallery.html
Класс:
Цитата:
<?
class googleChart
{
    var $addColumn = array();
    var $addRows = array();
    var $options = array();
 
    function chartAddColumn($title,$type='number')
    {
       $this->addColumn['type'][] = $type;    # string | number
       $this->addColumn['title'][] = $title;
    }
 
    function chartOptions($option,$param)
    {
       $this->options['option'][] = $option;
       $this->options['param'][] = $param;
    }
 
    function chartAddRows($title,$param=array())
    {
       $this->addRows['title'][] = $title;
       $this->addRows['param'][] = $param;
    }
 
    function chartAddColumnFunc($addColumn)
    {
       if (empty($addColumn)) {return false;}
       foreach ($addColumn['title'] as $k=>$v) {
           $r .= "data.addColumn('".$addColumn['type'][$k]."', '".$addColumn['title'][$k]."');\n";
       }
       return $r;
    }
 
    function chartAddRowsFunc($addRows)
    {
         if (empty($addRows)) {return false;}
         foreach ($addRows['title'] as $k=>$v) {
            $r .= "\n['".$addRows['title'][$k]."',".$this->chartAddRowsFuncParam($addRows['param'][$k])."],";
         }
         $r = $this->deLostChar($r);
         return $r;
    }
 
    function chartOptionFunc($options)
    {
         if (empty($options)) {return false;}
         foreach ($options['option'] as $k=>$v) {
            $r .= "\n".$options['option'][$k].": ".$options['param'][$k].",";
         }
         $r = $this->deLostChar($r);
         return $r;
    }
 
    function chartAddRowsFuncParam($addRowsParam=array())
    {
       foreach ($addRowsParam as $v) {
           $r .= $v.',';
       }
       $r = $this->deLostChar($r);
       return $r;
    }
    # $type: BarChart, PieChart, LineChart, ComboChart, ColumnChart, CandlestickChart, BubbleChart, AreaChart
    # options('title', 'заголовок');
    # options('is3D', 'true');   # для PieChart
    function chartDraw($title,$divName,$type='BarChart')
    {
      print '
          <script type="text/javascript">
            google.load("visualization", "1", {packages:["corechart"]});
            google.setOnLoadCallback(drawChart);
            function drawChart() {
              var data = new google.visualization.DataTable();
              '.$this->chartAddColumnFunc($this->addColumn).'
              data.addRows([
                '.$this->chartAddRowsFunc($this->addRows).'
              ]);
              var options = {
                '.$this->chartOptionFunc($this->options).'
              };
              var chart = new google.visualization.'.$type.'(document.getElementById("'.$divName.'"));
              chart.draw(data, options);
            }
          </script>';
 
     $this->addColumn = array();
     $this->addRows = array();
     $this->options = array();
    }
}
?>

Использование:

Цитата:
<?
$gChart=new googleChart;
 
$gChart->chartAddColumn('day','string');
$gChart->chartAddColumn('хосты','number');
$gChart->chartAddColumn('хиты','number');
 
$gChart->chartOptions('title',"'Статистика посещений'");
 
$gChart->chartAddRows('за сегодня',array(10,18));
$gChart->chartAddRows('за неделю',array(75,232));
$gChart->chartAddRows('за месяц',array(334,749));
 
$gChart->chartDraw('Статистика посещений','chart_div','BarChart');
?>
<div id="chart_div" style="width:700px;height:200px;"></div>
Реализован не весь функционал предоставленный гуглом, так что можете доработать по своему вкусу

----------
Предлагаю запчасти для спецтехники и пышные юбки пачки :)

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 16:45 01-03-2012 | Исправлено: IFKey, 14:51 09-06-2012
vof4ikWP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Генерация имени папки с порядковыми номерами
 

Код:
 
function getNextDirName($directory = './', $prefix = 'store')
{
    $founded = preg_grep('/' . $prefix . '/i', scandir($directory));
    return $prefix . (max(array_map('intval', array_map('str_replace',  
        array_fill(0, count($founded), $prefix),  
        array_fill(0, count($founded), ''), $founded))) + 1);
}
 

 
Добавлено:
перевод xml текста в php массив 1 строкой

Код:
$array = json_decode(json_encode(simplexml_load_string('<xml>some</xml>')), true);

Всего записей: 5 | Зарегистр. 21-06-2012 | Отправлено: 20:58 21-06-2012
The_S

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
перевод xml текста в php массив 1 строкой  

Это простой метод для XML-ки без атрибутов, но если есть аттрибуты, то они потеряются.
XML to Array без потери атрибутов.
http://whoooopblog.appspot.com/xml.txt

Всего записей: 188 | Зарегистр. 13-09-2006 | Отправлено: 15:43 01-07-2012
KazZan



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насчет XML, дали мне как то задание по синхронизации двух хмл,вроде ничего сложного,использовал обыкновенные функции парсера XML... небольшие трудности возникли при правильной организации xml структуры из ассоциативного массива в готовую законченную структуру DOM хмл. И тогда я наткнулся на довольно интересный класс предлагающий решить эту задачу.
вот собсно ссылка(мож кому пригодитцо) http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/

Всего записей: 6 | Зарегистр. 28-06-2007 | Отправлено: 11:23 04-07-2012
Ruslanski

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята помогите пожалуйста разобраться с iframe кодом,




Научитесь сначала читать названия тем. /Cheery/

Всего записей: 29 | Зарегистр. 28-02-2012 | Отправлено: 01:28 21-07-2012 | Исправлено: Cheery, 01:46 21-07-2012
kwadrox1980

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогло спасибо!




Не занимайтесь флеймом!! /Cheery/

Всего записей: 4 | Зарегистр. 29-08-2012 | Отправлено: 16:02 07-09-2012 | Исправлено: Cheery, 19:16 07-09-2012
hawik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Простая функция для записи лога в файл, с временем.  
Удобна для отладки или записи критических ситуаций.  
 

Код:
 
function toLog($str) {
 
    $logfilename = "runs.log"; // log filename
    $fp = fopen ($logfilename, "a");
    $s_time = date("Y-m-d H:i:s");
    fputs($fp, $s_time. "=>".$str ."\n");
    fclose($fp);
}
 

Всего записей: 55 | Зарегистр. 30-11-2002 | Отправлено: 12:55 28-09-2012
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
 
function validusername($username) {
//Функция для проверки имени пользователя (при регистрации, например)
    if ($username == "")
      return false;
 
    $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_".
        "абвгдеёжзиклмнопрстуфхшщэюяьъАБВГДЕЁЖЗИКЛМНОПРСТУФХШЩЭЮЯЬЪ";
 
    for ($i = 0; $i < strlen($username); ++$i)
      if (strpos($allowedchars, $username[$i]) === false)
        return false;
 
    return true;
}
 
function validemail($email) {
//Проверка мыла
    return preg_match('/^[\w.-]+@([\w.-]+\.)+[a-z]{2,6}$/is', $email);
}
 
function validfilename($name) {
//Проверка имени файла
    return preg_match('/^[^\0-\x1f:\\\\\/?*\xff#<>|]+$/si', $name);    
}
 
function format_comment($text, $strip_html = true) {
//bb-code и не только
    $s = $text;
    $s = preg_replace_callback("#\[code\](.*?)\[/code\]#si","code_nobb",$s);
    $s = str_replace("  ", " &nbsp;", $s);
    $s = nl2br($s);
    
    $bb[] = "#\[img\](?!javascript([^?](?:[^\[]+|\[(?!url))*?)\[/img\]#i";
    $html[] = "<img class=\"linked-image\" src=\"\\1\" border=\"0\" alt=\"\\1\" title=\"\\1\" />";
    $bb[] = "#\[img=([a-zA-Z]+)\](?!javascript([^?](?:[^\[]+|\[(?!url))*?)\[/img\]#is";
    $html[] = "<img class=\"linked-image\" src=\"\\2\" align=\"\\1\" border=\"0\" alt=\"\\2\" title=\"\\2\" />";
    $bb[] = "#\[img\ alt=([a-zA-Zа-яА-Я0-9\_\-\. ]+)\](?!javascript([^?](?:[^\[]+|\[(?!url))*?)\[/img\]#is";
    $html[] = "<img class=\"linked-image\" src=\"\\2\" align=\"\\1\" border=\"0\" alt=\"\\1\" title=\"\\1\" />";
    $bb[] = "#\[img=([a-zA-Z]+) alt=([a-zA-Zа-яА-Я0-9\_\-\. ]+)\](?!javascript([^?](?:[^\[]+|\[(?!url))*?)\[/img\]#is";
    $html[] = "<img class=\"linked-image\" src=\"\\3\" align=\"\\1\" border=\"0\" alt=\"\\2\" title=\"\\2\" />";
    $bb[] = "#\[kp=([0-9]+)\]#is";
    $html[] = "<a href=\"http://www.kinopoisk.ru/level/1/film/\\1/\" rel=\"nofollow\"><img src=\"http://www.kinopoisk.ru/rating/\\1.gif/\" alt=\"Kinopoisk\" title=\"Kinopoisk\" border=\"0\" /></a>";
    $bb[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    $html[] = "<a href=\"\\1\" title=\"\\1\">\\1</a>";
    $bb[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    $html[] = "<a href=\"http://\\1\" title=\"\\1\">\\1</a>";
    $bb[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    $html[] = "<a href=\"\\1\" title=\"\\1\">\\2</a>";
    $bb[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    $html[] = "<a href=\"http://\\1\" title=\"\\1\">\\3</a>";
    $bb[] = "/\[url=([^()<>\s]+?)\]((\s|.)+?)\[\/url\]/i";
    $html[] = "<a href=\"\\1\">\\2</a>";
    $bb[] = "/\[url\]([^()<>\s]+?)\[\/url\]/i";
    $html[] = "<a href=\"\\1\">\\1</a>";
    $bb[] = "#\[mail\](\S+?)\[/mail\]#i";
    $html[] = "<a href=\"mailto:\\1\">\\1</a>";
    $bb[] = "#\[mail\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/mail\]#i";
    $html[] = "<a href=\"mailto:\\1\">\\2</a>";
    $bb[] = "#\[color=(\#[0-9A-F]{6}|[a-z]+)\](.*?)\[/color\]#si";
    $html[] = "<span style=\"color: \\1\">\\2</span>";
    $bb[] = "#\[(font|family)=([A-Za-z ]+)\](.*?)\[/\\1\]#si";
    $html[] = "<span style=\"font-family: \\2\">\\3</span>";
    $bb[] = "#\[size=([0-9]+)\](.*?)\[/size\]#si";
    $html[] = "<span style=\"font-size: \\1\">\\2</span>";
    $bb[] = "#\[(left|right|center|justify)\](.*?)\[/\\1\]#is";
    $html[] = "<div align=\"\\1\">\\2</div>";
    $bb[] = "#\[b\](.*?)\[/b\]#si";
    $html[] = "<b>\\1</b>";
    $bb[] = "#\[i\](.*?)\[/i\]#si";
    $html[] = "<i>\\1</i>";
    $bb[] = "#\[u\](.*?)\[/u\]#si";
    $html[] = "<u>\\1</u>";
    $bb[] = "#\[s\](.*?)\[/s\]#si";
    $html[] = "<s>\\1</s>";
    $bb[] = "#\[li\]#si";
    $html[] = "<li>";
    $bb[] = "#\[hr\]#si";
    $html[] = "<hr>";
    
    $s = preg_replace($bb, $html, $s);
    
    return $s;
}
 

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 12:49 11-11-2012
IFKey



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Функция добавляет водяной знак к изображению:
$input_uri - путь к исходному изображению
$output_uri - путь к изображению на выходе
$watermark_uri - путь к PNG файлу - водяному знаку


Цитата:
function waterMark($input_uri,$output_uri,$watermark_uri)
{
  # Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
  $stamp = imagecreatefrompng($watermark_uri);
  $im = imagecreatefromjpeg($input_uri);
 
  # Установка полей для штампа и получение высоты/ширины штампа
  $marge_right = 10;
  $marge_bottom = 10;
  $sx = imagesx($stamp);
  $sy = imagesy($stamp);
 
  # Копирование изображения штампа на фотографию с помощью смещения края
  # и ширины фотографии для расчета позиционирования штампа.
  imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
 
  imagejpeg ($im, $output_uri, "100");
  # Вывод и освобождение памяти
  //header('Content-type: image/png');
  //imagepng($im);
  imagedestroy($im);
}


----------
Предлагаю запчасти для спецтехники и пышные юбки пачки :)

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 22:47 28-04-2013
sherzet

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...




Прочитайте внимательно название темы. Ваш вопрос не имеет к ней никакого отношения. /Cheery/

Всего записей: 1 | Зарегистр. 06-08-2013 | Отправлено: 02:53 07-08-2013 | Исправлено: Cheery, 09:49 07-08-2013
torenntov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет, подскажите на какой cms стоит этот сайт? http://***.ru/




Шапку прочитать - религия не позволяет? /Cheery/

Всего записей: 3 | Зарегистр. 28-08-2013 | Отправлено: 23:34 28-08-2013 | Исправлено: Cheery, 23:36 28-08-2013
Banshi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
 
Я в php совершенно не разбираюсь (только начал читать книжку по основам), но есть необходимость настроить ссылку на локальный ресурс:
 
1. сайт на движке joomla 1.5
2. используются браузеры IE, firefox, chrom.
3. есть шара \\192.168.1.50\post\2013
 
я пробовал настроить ссылку на странице вида: file://\\192.168.1.50\post\2013,
но она открывается только в IE.
 
Вопрос: есть ли какой-нибудь вид ссылки, чтобы открывался во всех браузерах.
Если нет, то есть ли какой-нибудь код для открытия во всех браузерах или МОД для joomla 1.5?




Но читать то вы умеете? Так прочитайте же шапку..

Всего записей: 1 | Зарегистр. 08-06-2006 | Отправлено: 03:12 17-09-2013 | Исправлено: Cheery, 03:14 17-09-2013
IFKey



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Простенькая функция для генерации одноуровневого меню:

Цитата:
private function CreateElementMenu($elementTpl,$element = array())
{
   $elementTpl = str_replace('#DOMAIN#',$this->domain,$elementTpl);
   foreach($element as $key=>$value)
   {
     $elementTpl = str_replace('#'.$key.'#',$value,$elementTpl);
   }
   return $elementTpl;
}
 
public function CreateMenu($elementTpl,$items = array(),$delimiter = false)
{
  $r = array();
  foreach($items as $key=>$item)
  {
     $r[] = $this->CreateElementMenu($elementTpl,$item);
  }
  return implode($delimiter,$r);
}

Использовать так:

Цитата:
 
$TopMenu = array(
    array(
      'URL' => '/',
      'TEXT' => 'Главная'
    ),
    array(
      'URL' => '/about.html',
      'TEXT' => 'О компании'
    ),
    array(
      'URL' => '/details.html',
      'TEXT' => 'Реквизиты'
    ),
    array(
      'URL' => '/our_work.html',
      'TEXT' => 'Наши работы'
    ),
    array(
      'URL' => '/contacts.html',
      'TEXT' => 'Контакты'
    )
);
$elementTpl = '<a href="http://www.#DOMAIN#/#URL#">#TEXT#</a>';
print $this->CreateMenu($elementTpl,$TopMenu, ' |');
 

Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 10:04 07-12-2013 | Исправлено: IFKey, 10:09 07-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IFKey
тогда уж проще более гибкое решение (опять же, пример без рекурсии)

Код:
function CreateMenu($func, $items = array(), $delimiter = false)  
{  
   $r = array();  
   foreach($items as $item)  
      $r[] = call_user_func($func, $item);  
   return implode($delimiter, $r);  
}  
 
echo CreateMenu(function($node) {  
   return '<a href="http://www.domain.ru/' . $node['URL'] . '">' . $node['TEXT'] . '</a>';
}, $TopMenu, ' |');



----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:08 08-12-2013 | Исправлено: Cheery, 04:09 08-12-2013
vof4ikWP

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как отсортировать ip ?
Преобразуем ip в число. Числа легко поддаются сортировке

Код:
 
    function convertIpToInt($sIpAddress)
    {
        $aTemp = explode(".", $sIpAddress);
        $nIpAddress = 0;
        foreach ($aTemp as $k => $v) {
            $nIpAddress += pow(256, 3 - $k) * $v;
        }
        return $nIpAddress;
    }
 

Преобразуем число обратно в ip

Код:
 
    function convertIntToIp($nIpAddress)
    {
        for ($i = 0; $i < 4; $i++){
            $aTemp[$i] = floor($nIpAddress / pow(256, 3 - $i));
            $nIpAddress = $nIpAddress - $aTemp[$i] * pow(256, 3 - $i);
        }
        return implode(".", $aTemp);
 
    }
 

Всего записей: 5 | Зарегистр. 21-06-2012 | Отправлено: 15:43 23-12-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Полезные (интересные и оригинальные) решения

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru