Полезные функции РНР (1 пост)

Печать RSS
1722
Кураторы темы:

N

Голубые штаны
0
<?php 
//получаем скриншот с видео (используем ffmpeg) 
  
// путь до файла 
$file = "/www/1.avi"; 
// кадр который будем выхватывать 
$frame = 150;  
  
// получаем кадр 
$movie = new ffmpeg_movie($file); 
$image = $movie->getFrame($frame); 
$show_img = $image->toGDImage();  
  
// выводим его 
header("Content-type: image/jpeg"); 
imagejpeg($show_img); 
imagedestroy($show_img); 
?>
N

Голубые штаны
0
<?php
// получаем скриншот и уменьшаем его (используем ffmpeg) 
 
// путь до файла
$file = "/www/1.avi";
// кадр который будем выхватывать
$frame = 150;
// максимальный размер по высоте 
$max_width  = 150; 
 
// получаем кадр в gd
$movie = new ffmpeg_movie($file);
$image = $movie->getFrame($frame);
$show_img = $image->toGDImage(); 
 
// редактируем то что в gd
$new_image = new ffmpeg_frame($show_img);
//вычисляем старые значения ширины и высоты
$old_width = $new_image->getWidth();
$old_heighgt = $new_image->getHeight();
// соотношение сторон
$mov_ratio = $old_width/$old_heighgt;
if($old_width > $max_width){
    $new_width    = $max_width;
 }
// задаём новые параметры
$new_height = $new_width / $mov_ratio;
// изменяем размер
$new_image->resize($new_width, $new_height);
$new_show_img = $new_image->toGDImage(); 
 
// выводим его
header("Content-type: image/jpeg");
imagejpeg($new_show_img);
imagedestroy($new_show_img); 
?>
N

Голубые штаны
0
<?php
// создаём анимированый .gif (используем ffmpeg) 
// путь до файла
$file = "/www/1.avi"; 
 
// поехали =)
$movie = new ffmpeg_movie($file); 
 
// создаём анимацию
$gif=new ffmpeg_animated_gif("/www/primer.gif",100 ,100 ,24); 
 
for ($frame = 150; $frame <= 200; $frame++) {
    $image = $movie->getFrame($frame);
    $gif->addFrame($image);
} 
?>
C

Малиновые штаны
0
Регуляртное выражение проверки E-mail адресов

<?php
$mail = 'ChipeR@s60-club.net';

if (!preg_match('/^[a-zA-Z0-9-._]{3,25}@[a-zA-Z0-9-]{2,25}.[a-zA-Z]{2,4}$/',$mail)){

   echo '<b><font color=red>Формат не верный!</font></b>';

}else{

   echo '<b><font color=green>Формат верный!</font></b>';
   
}

Регуляртное выражение для создания BB кода ICQ

<?php
$text = '[icq:7017970]';

echo preg_replace('#\[icq:( .*?[0-9]{5,9})\]#si','<img src="http://web.icq.com/whritepages/online?icq=\1&amp;img=5" alt="ICQ" />ICQ: \1',$text);
?>
K

Транклюкаторщик
0
Функция замены строк в файле. Делал для себя,решил поделиться со всеми:
<?
function replace($from,$to,$str,$file) {
# $from - заменяемый текст
# $to - текст на который заменяем
# $str - строка в которой производим замену ('all - все строки')
# $file - файл в котором производим замену
if(!file_exists($file)){die("Файл '$file' не существует!");}

$f1 = htmlspecialchars(file_get_contents($file));
if($str!=='all'){
$str = $str-1;
$f_str = explode("\n",$f1);
$f2 = str_replace($from,$to,$f_str[$str]);
$f3 = str_replace($f_str[$str],$f2,$f1);
$result = $f3;
}else{
$f1 = htmlspecialchars(file_get_contents($file));
$f2 = str_replace($from,$to,$f1);
$result = $f2;
}
if(file_put_contents($file,$result))
{die ('Замена произведена успешно!');} else {die ('Ошибка замены!');}
}
# Пример использования:
$ex = explode('|',file_get_contents('1.dat'));
replace($ex[0],'yeah','all','1.dat');
# или так:
replace($ex[0],'yeah',7,'1.dat');

?>
Изменил: KOZZ (28.07.2010 / 08:20)

2000 лет д.н.э.
0
че то жестокое ты изобразил
<?php
function replace_string($file, $line, $new, $old=''){
$text = file($file);
$text[$line] = ($old!='') ? str_replace($old, $new, $text[$line]) : $new."\r\n";
$ff = fopen($file, 'w');
fwrite($ff. implode('', $text));
fclose($ff);
}
?>

Оранжевые штаны
0
хосты и хиты на файлах с проверкой на куки.
<?php

# Если гость впервые на сайте
if(empty($_COOKIE['day'])){
SetCookie("day",date('d'),time()+3600*24*350);
$static = file("statistic.dat");
$ud = explode("|",$static[0]);
$udnew = $ud[0]+1;
$udnew2 = $ud[1]+1;
if($ud[2]!=date('d')){ $udnew2=1; }

$newst = $udnew.'|'.$udnew2.'|'.date('d');

$fop = fopen("statistic.dat", "r+");
fputs($fop,$newst);
fclose($fop); }

#Eсли гость и раньше бывал на сайте
if(!empty($_COOKIE['day']) && $_COOKIE['day']!=date('d')){
SetCookie("day",date('d'),time()+3600*24*350);

$static = file("statistic.dat");
$ud = explode("|",$static[0]);
$udnew = $ud[1]+1;
if($ud[2]!=date('d')){ $udnew=1; }

$newst = $ud[0].'|'.$udnew.'|'.date('d');

$fop = fopen("statistic.dat", "r+");
fputs($fop,$newst);
fclose($fop); } 
чтоб код работал создаем файл static.dat с содержанием 0|0|0
и выводим

$static = file("statistic.dat");
$ud = explode("|",$static[0]);
echo'Гостей сегодня: '.$ud[1].'<br>
Гостей за все время: '.$ud[0];
I

Пришелец
0
<?php
set_time_limit (0);
$excel = new COM("excel.application");
//Keep Excel invisible
$excel->Visible = 0;
//Create a new workbook
$wkb = $excel->Workbooks->Add();
$sheet = $wkb->Worksheets(1);
//This code adds the text 'Test' on row 2, column 4
$sheet->activate;
$files=array();
$a=1;
function recursedir($BASEDIR)
{
global $files;
$ext = array("html");
$files = array();
$hndl=opendir($BASEDIR);
while($file=readdir($hndl))
{

for($i=0;$i if(strstr($file, ".".$ext[$i])) $files[]=$file;
}
return $files;
}

// задаём директорию с которую нужно парсить
$BASEDIR="/1/";

recursedir($BASEDIR);

foreach($files as $file){
$fp = file_get_contents($BASEDIR.$file);
$fp=str_replace("**","\n \n",$fp);
$cell = $sheet->Cells($a,1);
$cell->Activate;
$cell->value =$fp ;
$a++;
}

$wkb->SaveAs("C:\excel123.xls");
//Quit MS Excel
$wkb->Close(false);
$excel->Workbooks->Close();
$excel->Quit();
unset($sheet);
unset($excel);
?>
PHP+Excel быстро генерируем XLS файлы
Изменил: iNeeXT (30.07.2010 / 21:37)
K

Транклюкаторщик
0
минималистичный скрипт статистики)
записывает в файл реферер и к-во переходов (только если юзер пришел с других сайтов)
<? # запись реферера 
$date = date('d_m_y'); $stat_f = "ref/$date.dat"; 
 if(!file_exists($stat_f)){
file_pu t_contents ($stat_f,"Сайт | Переходов|");
} 
$ref_f = file($stat_f); 
$ref_f_str = implode('',$ref_f);
foreach($ref_f as $str){
if(!empty($str)){list($ref_ site [],$ref_kol[]) = explode('|',$str);}}
if(!empty($_SERVER['HTTP_REFER ER'])){  $refer = parse_url(
$_SERVER['HTTP_REF ERER']);
if(isset($refer['host']) && $refer['host']!==$_SERVER ['HTTP_HOST']) { if(preg_match('/(.+ )\.(.+ )\.(.{2 ,4 })/',$refer['host'])) {$refer['host'] = substr(strchr($refer ['host'],'.'),1);}
$searched = array_search($refer['host'],$re f_site);
if($searched == 0 ){
file_put_contents (
$stat_f,$ref_f_str."\n".$refer[ 'host'].'|1 |');
}else{
$ref_f[$searched] = $refer['host'].'|'.($ref_kol [$searched]+1)."|";
file_put_contents($stat_f,impl ode ('',$ref_f));} } } ?> 
принимаю любую критику
Изменил: Lugaro (01.08.2010 / 19:46)
A

Оранжевые штаны
0
Удаление невалидных символов XML (чаще всего для парсеров API)
<?php
function stripInvalidXml($value)
{
    $ret = "";
    $current;
    if (empty($value)) 
    {
        return $ret;
    }
 
    $length = strlen($value);
    for ($i=0; $i < $length; $i++)
    {
        $current = ord($value{$i});
        if (($current == 0x9) ||
            ($current == 0xA) ||
            ($current == 0xD) ||
            (($current >= 0x20) && ($current <= 0xD7FF)) ||
            (($current >= 0xE000) && ($current <= 0xFFFD)) ||
            (($current >= 0x10000) && ($current <= 0x10FFFF)))
        {
            $ret .= chr($current);
        }
        else
        {
            $ret .= " ";
        }
    }
    return $ret;
}
Изменил: Azzido (10.08.2010 / 20:47)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск