1. Приветствую гостей и пользователей нашего форума! Первый раз вы у нас или же давно участвуете в жизни ресурса, хочу напомнить несколько моментов.

    1) Пользуемся поиском по форуму! Зачастую информация может находиться не по разделу!

    2) Раздел ИНФО-продуктов относительно новый, но имеем уже более 3000 высококлассных материалов (пользуемся сортировкой по прификсам).

    3) И самое важное, КАК КАЧАТЬ БЕЗ ОГРАНИЧЕНИЙ, вся информация находится по этой ссылке КУПИТЬ VIP

    4) Временная акция, получи +5 постов за вступление в нашу группу "Вконтакте" Более подробно ТУТ

    5) Веди активную жизнь на форуме и получай рубли на личный счёт!

    Скрыть объявление
  2. На нашем форуме Null-Prog действует серьёзное правило касательно размещения материалов!

    ДЛЯ РЕЛИЗЁРОВ: категорически запрещается выкладка материалов на файлообменники типа Deposit, letitbit и другие, требующие просмотров рекламы, обрезающие скорость и тд. Нарушителям, первые 2 раза предупреждения, далее БАН. Тему по этому поводу можно посмотреть ТУТ

    Скрыть объявление
  3. В тестовом режиме на нашем форуме открыт онлайн конструктор сайтов. Вы можете попробовать создать свой сайт у НАС, интуитивно понятный интерфейс, переведёт на 95%, быстрый экспорт проекта, от вас только перетаскивать элементы и вставить в них необходимый текст!

    Все вопросы ТУТ

    Скрыть объявление

  4. Скрыть объявление
  5. Уважаемые форумчане, открывается новый раздел форума, посвящённый ремонту и эксплуатации автомобилей. Просмотреть его можно ТУТ

    Так как раздел новый, информация будет пополнять каждый день. Если есть какие либо замечания по этому разделу, отписываемся в соответствующий раздел форума, либо в личку.

    Напоминаю, сообщения в разделе АВТО не учитываются, общение не ограничено.

    Скрыть объявление
  6. Объявляется набор Модераторов на различные раздел форума, свои заявки можно оставлять в ЭТОМ разделе, перед оставлением заявки рекомендуется ознакомиться с ПРАВИЛАМИ для модераторов.

PHP скрипты, функции и прочее полезное

Тема в разделе "РНР", создана пользователем Sam Jack, 18 май 2015.

  1. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Привет всем участникам форума!
    Если у Вас есть инересные скрипты php, то их можно выложить в этой теме!
    Я первый =)
    #1 Функция

    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 5 или более сообщений.**
    Данная функция поможет с полученными данными составить sql запрос в табицу, если у Вас имеются проблемы с синтаксисом sql.
    Пользоваться так:

    Код:
    $data = array();
    $data['id'] = '88909';
    $data['name'] = 'имя'; // данные можно получить из $_POST или $_GET, например
    $resultat = mysql_query('INSERT INTO Table SET '.make_SET_str($data));

    #2 функция.
    Совсем плевая функция, которая вернет Вам расширение файла (при ресайзе изображенй можно использовать, например.)
    PHP:
    function filetypes($filename){ # Указвается полный путь$filetype = end(explode(".", $filename));
    return $filetype;
    }
     
    Метки:
  2. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #3 функция - Ресайз картинок
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 1 или более сообщений.**
     
  3. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #4 функция - Правильная отправка письма email.
    Долго не отправлялись письма на email из-за неверной кодировки и невено прописанных хеадеров.
    Вот рабочая версия.
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 2 или более сообщений.**
     
    AutoRich нравится это.
  4. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #5 функция - преобразование текста для вноса в БД.
    Код:
    function htmltotext($text)
    {
          $text = trim($text);  #удаляем пробелы по бокам
          $text = stripslashes($text);   #  удаляем слэши
          $text = htmlspecialchars($text); #  переводим HTML в текст
          return $text; #возвращаем переменную
    }
     
  5. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #9 функция - склонение слов, имен и т.д.
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 10 или более сообщений.**
    Пользоваться так:
    Код:
    echo sclonenie ('Паша', 2);
    //1 - Кто?
    //2 - Кого?
    //3 - Кому?
    //4 - Кого?
    //5 - Кем?
    //6 - О ком?
     
  6. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #10 скрипт - позволяет пользователя спросить: хочет он открыть файл или скачать.
    Например на сайте музыки есть некий контент(музыка). При открытии на скачивание некиоторые браузеры спрашивают что сделать с файлом (открыть или скачать). Нонекотороые браузеры могут это игнорить (ie например) и юудут тупо открыать файл. Данный скрипт позволит заставит ie вывести табличку на скачивание.
    Вот сам скрипт

    Код:
    <?php
    $filename = $_GET['filename']; #Тут присваиваем переменной полный путь к файлу
    // нужен для Internet Explorer, иначе Content-Disposition игнорируется
    if(ini_get('zlib.output_compression'))
      ini_set('zlib.output_compression', 'Off');
    $file_extension = strtolower(substr(strrchr($filename,"."),1));
    if( $filename == "" )
    {
              echo "ОШИБКА: не указано имя файла.";
              exit;
    } elseif ( ! file_exists( $filename ) ) // проверяем существует ли указанный файл
    {
              echo "ОШИБКА: данного файла не существует.";
              exit;
    };
    switch( $file_extension )
    {
              case "pdf": $ctype="application/pdf"; break;
              case "exe": $ctype="application/octet-stream"; break;
              case "zip": $ctype="application/zip"; break;
              case "doc": $ctype="application/msword"; break;
              case "xls": $ctype="application/vnd.ms-excel"; break;
              case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
              case "mp3": $ctype="audio/mp3"; break;
              case "gif": $ctype="image/gif"; break;
              case "png": $ctype="image/png"; break;
              case "jpeg":
              case "jpg": $ctype="image/jpg"; break;
              default: $ctype="application/force-download";
    }
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false); // нужен для некоторых браузеров
    header("Content-Type: $ctype");
    header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename)); // необходимо доделать подсчет размера файла по абсолютному пути
    readfile("$filename");
    exit();
    ?>
     
  7. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #11 функция - позволяет скачивать файлы как на файлообменниках.
    Вот код

    Код:
    function downloadfile($filename) {
        if (file_exists($filename)) {
          /* Если файл существует */
          header("Content-Disposition: attachment; filename='" . basename($filename) . "';"); // Указываем имя при сохранении в браузере
            echo file_get_contents($filename); // Отдаём файл пользователю на скачивание
        }
        else echo "Not Found"; // Если файла не существует
      }
    Можно доработать под себя (добавить некий сессионный ключ и пазрешать пользователю скачивать файл пока он у него есть).

    От себя. Функция неписана не мной. Долго искал нечото похожее и оно само нашло меня)
     
  8. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    12 скрипт - позволяет по фтп скачивать файлы с других серверов.
    Как его использовать: некий человек при отправке некой формы вставляет в поле "Файл" ссылку. Вы перекачиаете этот файл на сервер и можете просмотреть то что Вам отправили спустя огромный промежуток времени и ссылка не будет битой. (Нпример изображения). Файлообменники не ломает!!
    Вот код
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 10 или более сообщений.**
    P.S. на просторах нета нашел еще это

    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 2 или более сообщений.**
     
  9. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    12 функция - вставляет смайлы вместо этого :)
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 5 или более сообщений.**
     
  10. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    #13 это бедет целый класс
    Класс писан не мной, но я его использую в своих проектак. Оч удобный.
    Скрытый текст:
    **Скрытый текст: Для просмотра скрытого текста Вы должны иметь 20 или более сообщений.**
     
  11. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Как работать с ВК через API? Вот как! Можно получить имя, фамилию и пр.
    Код:
    <script type="text/javascript" src="//vk.com/js/api/openapi.js?82"></script>
    <script type="text/javascript">
      VK.init({apiId: HereYouIDofAPI});
    </script>
    <?php
    $per_1 = $_GET['first_name']; //Получаем имя пользователя
    $per_ 2 = $_GET['last_name']; // Получаем его Фамилию
    $per_3 = $_GET['uid'];      // Получаем его ID
    $per_4 = $_GET['photo_rec']; //Поучаем мини фото
    $per_5 = $_GET['photo'];      //Поучаем полное фото
    ?>
    <div id="vk_auth"></div>
    <script type="text/javascript">
    VK.Widgets.Auth("vk_auth", {width: "180px", authUrl: '/vkapi.php?o=-1&p=Auth'});
    </script>
     
  12. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Простенький класс для работы с файлами
    Код:
    class file_handler {
        private $folder;
        private $file;
        function showTree($folder) {
        if (is_dir($folder)) {
            echo '<div style="float: left;">+</div><p class="folder close">'.substr($folder, strripos($folder, '/')+1)."</p><ul>";
            if ($dh = opendir($folder)) {
                while (($file = readdir($dh)) !== false) {
                    if ($file=='..' || $file=='.') continue;
                    echo "<li>";
                    if (is_dir($folder."/".$file)) $this->showTree($folder."/".$file);
                    else echo '<div style="float: left;">&uarr;</div><p class="file" data-file="'.$folder."/".$file.'">'.$file.'</p>',PHP_EOL;
                    echo "</li>";
                }
                closedir($dh);
            }
            echo "</ul>";
        }
        }
        
        
        
        
        function showFile($file) {
            $text = file_get_contents($file);
            echo $text;
        }
        function saveFile($file, $text) {
            $text = file_put_contents($file, $text);
        }
    }
    Способ минимизации html кода

    index.php


    Код:
    include_once('tags.php');
    $NotCompiledFile = "./not_compiled/index.html";
    $CompiledFile = "./compiled/index.html";
    $handle = fopen($NotCompiledFile, "r");
    $NotCompiled = fread($handle, filesize($NotCompiledFile));
    fclose($handle);
    $Compiled = strip_tags($NotCompiled, $html);
    file_put_contents($CompiledFile, $Compiled);
    tags.php
    Код:
    <?php
    $html="<html><head><title><body><span><i><p><h1><h2><h3><h4><h5><h6><h7><div><table><tr><td><meta><header><section><strong><aside><footer><link><script><!DOCTYPE html>";
    ?>
    Функция для очистки массива от пустых строк
    Код:
    function Clear_array($array)
    {
        $c=sizeof($array);
        $tmp_array=array();
        for($i=0; $i<$c; $i++)
        {
        if (!(trim($array[$i])==""))
            {
            $tmp_array[]=$array[$i];
            }
        }
        return $tmp_array;
    }
    Функция обрезания текстовой строки до нужного кол-ва символов

    Код:
    function substring($str,$count=150){
      $str=strip_tags($str);
      if (strlen($str)>$count) {
        $substr=substr($str,0,$count-1);
        return substr($substr,0,strlen($substr)-strlen(strrchr(substr($str,0,$count-1)," "))+1)."...";
      }else{
        return $str;
      }
    }
    Функция определения расширения файла
    Код:
    function what_ras($r,$t=null)
    {
    $f=explode('.',$r);
    return strtolower($f[count($f)-1-$t]);
    } 
     
  13. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Самый простой пример мульти-страниц:
    Код:
    <?php
    if (isset($_GET['page'])) {
        if ($_GET['page'] === 'lol') { require('/lol.php'); }
        elseif ($_GET['page'] === 'main' { require('/main.php'); }
    } else { require('/main/index.php') }
     
  14. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Небольшая функция подключения к бд
    Код:
    function connect($host, $login, $password, $database)
        {
            $link = mysql_connect($host, $login, $password); if (!$link)
                {
                    die('Не удалось соединиться : ' . mysql_error());
                }
            $db_selected = mysql_select_db($database, $link);
            if (!$db_selected)
                {
                    die ('Не удалось выбрать базу '. $database .': ' . mysql_error());
                }
        }
     
  15. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    Скрипт вывода файлов определенного расширения в папке.

    Код:
    <?php
    
      function excess($files) {
        $result = array();
        for ($i = 0; $i < count($files); $i++) {
          if ($files[$i] != "." && $files[$i] != "..") $result[] = $files[$i];
        }
        return $result;
      }
      $dir = "files"; // Путь к директории, в которой лежат изображения
      $files = scandir($dir); // Получаем список файлов из этой директории
      $files = excess($files); // Удаляем лишние файлы
    ?>
    <ul>
    <?php for ($i = 0; $i < count($files); $i++) { ?>
      <li><?=$files[$i]?></li>
    <?php } ?>
    </ul>
     
  16. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.750
    грпадиент
    Код:
    function gradient($text, $hexfrom, $hexto){
    
    $text = iconv('utf-8','windows-1251',$text);
    $colorsteps = strlen($text);
    
    $fromrgb['r'] = hexdec(substr($hexfrom, 0, 2));
    $fromrgb['g'] = hexdec(substr($hexfrom, 2, 2));
    $fromrgb['b'] = hexdec(substr($hexfrom, 4, 2));
    
    $torgb['r'] = hexdec(substr($hexto, 0, 2));
    $torgb['g'] = hexdec(substr($hexto, 2, 2));
    $torgb['b'] = hexdec(substr($hexto, 4, 2));
    
    $steprgb['r'] = ($fromrgb['r'] - $torgb['r']) / ($colorsteps - 1);
    $steprgb['g'] = ($fromrgb['g'] - $torgb['g']) / ($colorsteps - 1);
    $steprgb['b'] = ($fromrgb['b'] - $torgb['b']) / ($colorsteps - 1);
    
    for($i = 0; $i <= $colorsteps; $i++){
    
    $rgb['r'] = floor($fromrgb['r'] - ($steprgb['r'] * $i));
    $rgb['g'] = floor($fromrgb['g'] - ($steprgb['g'] * $i));
    $rgb['b'] = floor($fromrgb['b'] - ($steprgb['b'] * $i));
    
    $hexrgb['r'] = sprintf('%02x', ($rgb['r']));
    $hexrgb['g'] = sprintf('%02x', ($rgb['g']));
    $hexrgb['b'] = sprintf('%02x', ($rgb['b']));
    
    $color = implode(null, $hexrgb);
    
    $return .= '<font color="'.$color.'">'.$text[$i].'</font>';
    
    }
    
    return iconv('windows-1251','utf-8',$return);
    }
     
  17. RootVell

    RootVell Moderator
    Команда форума Модер

    Регистрация:
    14 июл 2015
    Сообщения:
    44
    Симпатии:
    9
    Интересная тема.

    Т.е. благодаря этому чудо скрипту, можно с одного сервера перекидывать файл на другой, на прямую ? безе скачивания на ПК, и перезаливки на второй сервер, верно ?
     
  18. ekonom888

    ekonom888 Новичок

    Регистрация:
    15 авг 2015
    Сообщения:
    15
    Симпатии:
    3
    Нужно всегда быть осторожным при заливке файлов пользователями в том числе и изображений, чтобы исключить взлом сайта.
     
  19. RootVell

    RootVell Moderator
    Команда форума Модер

    Регистрация:
    14 июл 2015
    Сообщения:
    44
    Симпатии:
    9
    Нужно выставлять определенные права на запись в директориях, да даже не то что на запись, а где-то и даже на чтение )
     
  20. ezhe87

    ezhe87 Новичок

    Регистрация:
    1 мар 2017
    Сообщения:
    3
    Симпатии:
    0
    Вдруг кому пригодится


    function download_remote_file($file_url, $save_to)
    {
    $content = file_get_contents($file_url);
    file_put_contents($save_to, $content);
    }

    download_remote_file('http://откуда/имя_файла.jpg', realpath("./в_папку") . '/имя_создаваемого_файла.jpg');
    mkdir("/куда/", 0755);
     

Поделиться этой страницей

iHax Community
Рейтинг@Mail.ru Яндекс.Метрика мониторинг сайтов
Форум программного обеспечения/
Загрузка...