Стандартные решения (велосипеды)

Статус
В этой теме нельзя размещать новые ответы.

stealthdebuger

Механик
Команда форума
Регистрация
25 Авг 2008
Сообщения
681
Реакции
1.684
Задача: разбить строку в массив по два слова
PHP:
<?
$string = 'тут вам не здесь и здеся не тута';
$arr = array();
$t = preg_replace_callback('#([\pL-]+\pZ){2}#si', //Для текста UTF-8 заменить модификтатор \i на \u
    create_function(
    '$match',
    'global $arr;
    $arr[] = trim($match[0]);
    return "";'),
    $string);
$arr[] = $t;
var_dump($arr);
?>
 

X-ray

Создатель
Регистрация
17 Апр 2012
Сообщения
47
Реакции
128
Простой расчет КПД пользователей форума:
Код:
<?
$thanks="10"; //Число симпатий
$post="110";  //Число сообщений
$xkpd=round(log($post+$thanks)*10);
echo $xkpd;
?>
 

Doctor_Chaos

Проктолог-гинеколог
Команда форума
Модератор
Регистрация
7 Сен 2013
Сообщения
949
Реакции
723
Делал для себя, но вдруг кому еще пригодится:
Код:
<?php
header('Content-Type: image/png');
function hidemail($text) {
$im = @imagecreate (100, 30)
  or die ("Не удается создать новую картинку!");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 25, 15, 95);
imagestring ($im, 12, 5, 5, $text, $text_color);
return imagepng($im);
}
hidemail('dlablabla');
?>
 

Mc's JeKa

Создатель
Регистрация
14 Апр 2007
Сообщения
25
Реакции
14
Скрипт парсинга доменов через регулярные выражения на php


Добавлено latteo:
По сути это парсер одиночных слов из анкоров в таблице (</td>). Это очень жёсткий парсер и только под конкретный сайт.
 
Последнее редактирование модератором:

cruide

Писатель
Регистрация
25 Июл 2012
Сообщения
8
Реакции
22
Продолжу тему полезных велосипедов :)
Совершенно недавно понадобилось мне проверять запрос на ajax.
То есть, ajax ли запрашивает данные?
родился очередной веломобиль:

PHP:
  function is_ajax()
  {
       global $_SERVER;
       
     if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
         return true; 
     } else if( isset($_SERVER['X_REQUESTED_WITH']) && $_SERVER['X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
         return true;
     } else if( isset($_SERVER['HTTP_ACCEPT']) && (false !== strpos($_SERVER['HTTP_ACCEPT'], 'text/x-ajax')) ) {
         return true;
     }
     
     return false;
  }
 

Цуиьфыеук

Создатель
Регистрация
15 Янв 2018
Сообщения
36
Реакции
19
Создание снимка структуры каталога в windows и сравнение двух последних снимков
Код:
<?php
function FS($dir){
   //echo "scan $dir\r\n";
   $res_tmp = array();
   $files_tmp = scandir($dir);
   foreach ($files_tmp as $filename){
     if (is_dir($dir.'\\'.$filename)&&($filename!='.')&&($filename!='..'))
     $res_tmp[$filename] = FS($dir.'\\'.$filename);
   }
   foreach ($files_tmp as $filename){
     if (is_file($dir.'\\'.$filename)) $res_tmp[$filename]=array(
       'md5' => md5_file($dir.'\\'.$filename),
       'size' => filesize($dir.'\\'.$filename)
     );
   }
   return $res_tmp;
}
function diff($ar1,$ar2){
   $diff = array();
   $diff['+'] = array();
   $diff['-'] = array();
   $diff['*'] = array();
   foreach ($ar1 as $k => $v){
     if (is_array($v)){
       if( !isset($ar2[$k]) )
  $diff['-'][$k] = $v;
       else if ( !is_array($ar2[$k]) )
         $diff['*'][$k] = array('old' => $v, 'new' => $ar2[$k]);
  else {
  $new_diff = diff($v, $ar2[$k]);
  if( !empty($new_diff['+']) )
  $diff['+'][$k] = $new_diff['+'];
         if( !empty($new_diff['-']) )
  $diff['-'][$k] = $new_diff['-'];
         if( !empty($new_diff['*']) )
  $diff['*'][$k] = $new_diff['*'];
  }
     }else
       if( !array_key_exists($k,$ar2) )
         $diff['-'][$k] = $v;
       else if ( $ar2[$k] !== $v )
         $diff['*'][$k] = array('old' => $v, 'new' => $ar2[$k]);
   }
   foreach ($ar2 as $k => $v){
     if( !array_key_exists($k,$ar1) )
       $diff['+'][$k] = $v;
   }
   return $diff;
}
$files = array();
$files = FS('\\\\server\\Share\\Каталог');
$res = fopen(date("Y-m-d-H-i-s").'.json','a+');
fwrite($res,json_encode($files));
fclose($res);
$reports = glob("*.json");
rsort($reports);
if (isset($reports[1])){
   $content1 = file_get_contents($reports[0]);
   $content1 = json_decode($content1, true);
   $content2 = file_get_contents($reports[1]);
   $content2 = json_decode($content2, true);
   $res = fopen($reports[0].'-'.$reports[1].'-diff.txt','w+');
   $diff = diff($content2,$content1);
   fwrite($res,print_r($diff,true));
   fclose($res);
   echo "look report in file ".$reports[0].'-'.$reports[1].'-diff.txt';
}
?>
 
Последнее редактирование модератором:

velwind

Создатель
Регистрация
25 Май 2018
Сообщения
46
Реакции
19
Продолжу тему полезных велосипедов :)
Совершенно недавно понадобилось мне проверять запрос на ajax.
То есть, ajax ли запрашивает данные?
родился очередной веломобиль:

PHP:
  function is_ajax()
  {
       global $_SERVER;
      
     if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
         return true;
     } else if( isset($_SERVER['X_REQUESTED_WITH']) && $_SERVER['X_REQUESTED_WITH'] == 'XMLHttpRequest' ) {
         return true;
     } else if( isset($_SERVER['HTTP_ACCEPT']) && (false !== strpos($_SERVER['HTTP_ACCEPT'], 'text/x-ajax')) ) {
         return true;
     }
    
     return false;
  }
$_SERVER и так суперглобальный, global использовать не нужно
global вообще не нужно использовать, это дурной тон
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху