Архив метки: php

Перебор каждого дня месяца за выбранный период, с выделением последнего дня месяца

Задача: перебрать каждый день, в выбранном периоде, отдельно выделяя последний день месяца.

Решение:

echo "<h1>Расчет за период с $dtstart по $dtend</h1>";

$date=$dtstart;   
while($date <= $dtend){
    echo "$date<br/>";    
    if (trim($date)==getLastDayOfMonth2(trim($date))) {
	echo "<b>$date</b><br/>";	
    };
  $date = date('Y-m-d', strtotime($date.' + 1 days'));       
};
function getLastDayOfMonth2($dateInISO8601){    
    $date = explode('-', $dateInISO8601);
    $zx=$date;
    if ( !checkdate ( $date[1] , $date[2] , $date[0] ) )
        return false; 
    $start = new DateTime( $dateInISO8601 );
    $end = new DateTime( $dateInISO8601 );
    $end->add( new DateInterval( 'P2M' ) );
    $interval = new DateInterval( 'P1D' );
    $daterange = new DatePeriod($start, $interval, $end);
    $prev = $start;
    foreach ($daterange as $date){
        if ($prev->format('m') != $date->format('m') )
            return  $zx[0]."-".$zx[1]."-".(int) $prev->format('d'); 
        $prev = $date;
    }    
    return false;
}


Совместное использование php 7 и php 5 на одном сервере Ubuntu 16.4

По умолчанию на последних версиях Ubuntu с ситемой ставится php 7. Однако до сих пор множество проектов не работают полноценно на этой версии.

1) Добавим репозитарий и установим php 5.6 и php 7.0 вместе

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

2) Переключимся на php 5.6

  • Apache:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
    
  • CLI:
    sudo update-alternatives --set php /usr/bin/php5.6
    

3) Переключимся на php 7.0

  • Apache:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
    
  • CLI:
    sudo update-alternatives --set php /usr/bin/php7.0
    

Вставка QR кода в текст RTF

Ну примерно так.. Пришлось еще конвертировать из png в jpg, т.к. png рандомно не распознается Microsoft Word как картинка.

CreateQr($blibase,$number,abs($rec),$number.'qr_pay.png');
	
	png2jpg	("/tmp/$number"."qr_pay.png","/tmp/$number"."qr_pay.jpg",100);
	
	$b=fopen("/tmp/$number"."qr_pay.jpg","rb");    
	$imgData=getimagesize("/tmp/$number"."qr_pay.jpg");
	$newImage="";
	$newImagePre="{\\*\\shppict{\\pict \\jpegblip \\picw".$imgData[0]." \\pich".$imgData[1]." \\wbmbitspixel24 ";
	while (!feof($b)) {
	    $newImage.= fgets($b);
	}
	$hex=bin2hex($newImage);
        $imgDat=$newImagePre.$hex."}}"; 
	//    $temp .$imgDat;
	$temp = str_replace("!qrkode!", $imgDat, $temp);

function png2jpg($originalFile, $outputFile, $quality) {
    $image = imagecreatefrompng($originalFile);
    imagejpeg($image, $outputFile, $quality);
    imagedestroy($image);
}

Пример клиента WebSocket на PHP

Если клиент на javascript для WebSocket это весьма простая вещь, то на PHP чуточку сложнее. Готовых примеров в сети раз-два и обчелся. Вот пример одной из реализаций:

 

$local = "http://грибовы.рф";		    
$data = "Скрипт обработки выбора фильтра абонентом";  
$key="woeudhцукацук цук пупркеркеуенakcslerug;er";

	$host=$row2["mysql_ip"];
	$port = 8000;
	$head = "GET / HTTP/1.1"."\r\n".
		"Upgrade: WebSocket"."\r\n".
		"Connection: Upgrade"."\r\n".
		"Origin: $local"."\r\n".
		"Host: $host"."\r\n".
		"Sec-WebSocket-Key: asd245345235d6asd6as7d"."\r\n".
		"Content-Length: ".strlen($data)."\r\n"."\r\n";
	
	$sock = fsockopen($host, $port, $errno, $errstr, 2);
	fwrite($sock, $head ) or die('error:'.$errno.':'.$errstr);
	$headers = fread($sock, 2000);
	//echo $headers;
	fwrite($sock, hybi10Encode($data)) or die('error:'.$errno.':'.$errstr);
	$wsdata = fread($sock, 2000);
	//var_dump(hybi10Decode($wsdata));
	//echo "--send\n";    
	    $mess["key"]=$key;
	    $mess["command"]="UpdateFilterContent";
	    fwrite($sock, hybi10Encode(json_encode($mess))) or die('error:'.$errno.':'.$errstr);
	//echo "--read\n";        
	$wsdata = fread($sock, 2000);
	//var_dump(hybi10Decode($wsdata));
	fclose($sock);		

Вспомогательные функции:

Читать далее Пример клиента WebSocket на PHP