Простой JSON сервер

Создаем файл hello_http.js со следующим содержимым

var port = 8080;
var http = require("http");
var server = http.createServer();
server.on('request', request);

server.listen(port, (err) => {
    if (err) {
        return console.log('something bad happened', err)
    }
    console.log(`server is listening on ${port}`)
})

function request(request, response) {
    var store = '';
    request.on('data', function(data){
        store += data;
    });
    request.on('end', function(){
        var js_name = JSON.parse(store);
        console.log(js_name['name']);
        //response.setHeader("Content-Type", "text/json");
        //response.setHeader("Access-Control-Allow-Origin", "*");
        //response.end(store)
        //store = JSON.parse(store);.
        response.end('city: '+js_name['address']['city']);
    });
}
Читать далее «Простой JSON сервер»

Проверка значения на присутствие в массиве

$OrderStatusId=60;
if(in_array($OrderStatusId, array(60,61,64))) {
    print "Значение присутствует";
} else {
    print "Значение не найдено";
}

или наоборот

$OrderStatusId=60;
if(!in_array($OrderStatusId, array(60,61,64))) {
    print "Значение не найдено";
} else {
    print "Значение присутствует";
}

Правильная работа с базой MSSQL

$server="SERVER_IP";
$user="USER_NAME";
$pass="USER_PASS";
$database="BASE";

print "--START--<br>";
try{
    $db = mssql_connect($server, $user, $pass);
    if (!$db) throw new Exception ("Невозможно установить соединение с базой данных.");
    if (!mssql_select_db($database,$db)) throw new Exception ("Невозможно выбрать базу данных.");
###
    $query1 = "SET CONCAT_NULL_YIELDS_NULL ON"; # настройка для MSSQL (чтобы 'string'+NULL давало NULL, а не 'string')
    if(!mssql_query($query1)) throw new Exception("Невозможно установить SET CONCAT_NULL_YIELDS_NULL ON");
### 
    $querys = "EXEC [dbo].[REP_OrdersClient] @DateBegin = '20180501', @DateEnd = '20180704', @ContractNumberPrimary = '12', @ContractNumber = '38957'";
    $result=mssql_query($querys);
    
    if (!$result) throw new Exception("Невозможно установить соединение с сервером");
    if (!mssql_num_rows($result)) {
        echo 'Не найдено ни одной записи.';
    } else {
        while ($row = mssql_fetch_array($result, MSSQL_ASSOC)) {
            $results[]= $row;
        }
    }
    mssql_free_result($result);
}
catch(Exception $e){
    echo $e->getMessage();
}
print_r($results);

Исключения TRY CATCH

Перехват ошибок без остановки работы самого скрипта

$server='Server';
$user='Phpweb_po';
$pass='fzHjYt_';
$database='Main_';

try{
    $db = mssql_connect($server, $user, $pass);
    if (!$db) throw new Exception ("Невозможно установить соединение с базой данных.");
    if (!mssql_select_db($database,$db)) throw new Exception ("Невозможно выбрать базу данных.");
    $login_name=$_SESSION['Zend_Auth']['storage']->Usr;
    $role=$_SESSION['Zend_Auth']['storage']->Roles[0]['Role'];
}catch (Exception $e){
    echo $e->getMessage();
}

Функция преобразует все URL адреса в тексте в ссылки

function makeClickableLinks($text) { 
    $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a target="_blank" href="\\1">\\1</a>', $text); 
    $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2";>\\2</a>', $text); 
    $text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1">\\1</a>', $text); 
    return $text; 
}

Закрываем доступ к папке с помощью .htaccess и .htpasswd

Если необходимо закрыть доступ к файлам, в опредиленной папке, данный скрипт создаст все необходимые файлы для конфигурации вебсервера Apache

Читать далее «Закрываем доступ к папке с помощью .htaccess и .htpasswd»

PHP date() – вывод русского месяца

Пример работы обычной команды data(«d M Y»);

Выведет результат: 01 Mar 2012

Пример работы новой функции rdate(«d M Y»);

Выведет результат: 01 Марта 2012

Во всем остальном новая функция rdate() работает точно также как и стандартная функция. Для вывода месяца в форматированной дате используется латинский символ «M». Так же возможен второй параметр функции, для указания метки времени – timestamp.

function rdate($param, $time=0) {
    if(intval($time)==0)$time=time();
    $MonthNames=array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
    if(strpos($param,'M')===false) return date($param, $time);
        else return date(str_replace('M',$MonthNames[date('n',$time)-1],$param), $time);
}

Транслитирация русской строки

Переводит русские букауки в латиницу

function TransliteString($str)
{
$str=strtr($str, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n',
'о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ъ'=>'','ы'=>'y','э'=>'e','_'=>'i',' '=>'-',
'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D','Е'=>'E','З'=>'Z','И'=>'I','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N',
'О'=>'O','П'=>'P','Р'=>'R','С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H','Ъ'=>'','Ы'=>'Y','Э'=>'E','_'=>'I'
));
$str=strtr($str, array("ё"=>"yo","ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"","ю"=>"yu","я"=>"ya", "Ё"=>"Yo", "Ж"=>"Zh", "Ц"=>"Ts",
"Ч"=>"Ch", "Ш"=>"Sh", "Щ"=>"Shch","Ь"=>"", "Ю"=>"Yu", "Я"=>"Ya", "ї"=>"i",
"Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
));
return $str;
}

Отправка письма с вложением

Функция предназначена для отправки письма с сайта с вложенным файлом. Создадим HTML-форму, предназначенную для заполнения пользователем

HTML-форма index.php

<HTML> 
<HEAD> 
<TITLE>Отправка сообщения с вложением</TITLE> 
</HEAD> 
<BODY> 
<H3> <center><font color=#1E90FF>Отправка сообщения с вложением</font></H3> 
<center> 
<table width=1 border=0> 
<form action=simple_mail.php enctype='multipart/form-data' method=post> 

<tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr> 
<tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr> 
<tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td> 
<tr><td width=50%>Photo:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr> 
</tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr> 
</form> 
</table> 
</center> 
</BODY> 
</HTML>
Читать далее «Отправка письма с вложением»