• Как с помощью SWITCH выбрать ФУНКЦИЮ?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    $func = 'trim';
    if (function_exists($func)) echo call_user_func($func,' Test ');


    или твой пример

    $_POST['function'] = 'trim';
    $array = [' a', 'b '];
    $allowedFunctions = ['trim'];
    
    if (function_exists($_POST['function']) && in_array($_POST['function'], $allowedFunctions)) {
        $results = array_map($_POST['function'], $array);
        print_r($results);
    }
    Ответ написан
    Комментировать
  • Не получаеться правильно спарсить с PHP Simple Dom Parser?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Не лучший источник для парсинга, но можно сделать например так:
    <?php
    	include 'simple_html_dom.php';
    	
    	$url = 'http://www.hltv.org/?pageid=179&teamid=4991&gameid=2';
    	$cacheFile = dirname(__FILE__).'/'.md5($url);
    	
    	if (!file_exists($cacheFile)) {
    		if ($html = file_get_contents($url)) {
    			file_put_contents($cacheFile, $html);
    		} else die('Can\'t get html');
    	} else {
    		$html = file_get_contents($cacheFile);
    	}
    	
    	$items = [];
    	$dom = str_get_html($html);
    	if ($domElements = $dom->find('div.covGroupBoxContent')){
    		foreach($domElements as $domBox) {
    			if (!strpos($domBox->plaintext, 'Key stats')) continue;
    			if ($domBoxElements = $domBox->find('div.covSmallHeadline')) {
    				$item = [];
    				foreach($domBoxElements as $k=>$element) {
    					if (!$k) continue;
    					$item[] = $element->plaintext;
    					if ($k%2==0) {
    						$items[] = $item;
    						$item = [];
    					}
    				}
    			}
    		}
    	}
    	
    	echo '<pre>';
    	print_r($items);
    	echo '</pre>';


    результат:

    Array
    (
        [0] => Array
            (
                [0] => Maps played
                [1] => 539
            )
    
        [1] => Array
            (
                [0] => Wins / draws / losses
                [1] => 363 / 8 / 168
            )
    
        [2] => Array
            (
                [0] => Total kills
                [1] => 50715
            )
    
        [3] => Array
            (
                [0] => Total deaths
                [1] => 45101
            )
    
        [4] => Array
            (
                [0] => Rounds played
                [1] => 14083
            )
    
        [5] => Array
            (
                [0] => K/D Ratio
                [1] => 1.12
            )
    
        [6] => Array
            (
                [0] => Best player (Average rating)
                [1] => olofmeister (1.15)
            )
    )


    P.S. Кусок с кешированием только не забудь убрать, он нужен только на время отладки, чтобы ускорить процесс и не дергать внешний сервер.
    Ответ написан
    2 комментария
  • Нет подключения к базе данных?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    тут тоже похоже ошибка:

    "SET NAME 'utf8'".DB_CHAR

    должно быть

    "SET NAMES '".DB_CHAR."'"
    Ответ написан
    1 комментарий
  • Почему не срабатывает запрос PDO?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Привет,

    открой консоль браузера ( F12 ), и посмотри ответ от PHP скрипта. Что там в ответе?
    Ответ написан
  • Как сделать мульти-фильтр для таблицы HTML?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Говнокодить, так говнокодить. Используй в фильтрах регулярные выражения, например: E[\s\S]+active :)

    А если серьезно, то алгоритм такой:
    1) Делишь по разделителю(,) на два выражения: EUR, Active
    2) Сравниваешь с значениями столбцов участвующими в поиске
    Ответ написан
    Комментировать
  • Проблема с explode и in_array в PHP, почему может не работать?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    вот это:

    Потом вызываю
    $newsCategory = explode( ',' , $newsCategory );

    замени на:

    if (is_array($newsCategory)) die('Интересно зачем я в explode передаю массив, вместо строки вторым параметром?');
    $newsCategory = explode( ',' , $newsCategory );
    Ответ написан
    9 комментариев
  • Как переместить каретку в div на строчку ниже?

    orlov0562
    @orlov0562
    I'm cool!
    Вот так: jsfiddle.net/97dw6382/2

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

    Тут есть более подробное описание: stackoverflow.com/a/6939886
    Ответ написан
    3 комментария
  • Как настроить сервер apache для symfony?

    orlov0562
    @orlov0562
    I'm cool!
    1) попробуй испортить конфиг и перезагрузить апач, чтобы убедиться что конфиг вообще работает

    2) попробуй зайти listemployee.com/app_dev.php , если зайдет, значит mod_rewrite не включен или не работает или что-то с файлом web/.htaccess

    3) проверь чтобы у апача были права на чтение директории \твой-длинный-путь\web
    Ответ написан
  • Напоминалка + планировщик + todo list?

    orlov0562
    @orlov0562
    I'm cool!
    Описание очень гугл календарь напоминает...
    Ответ написан
  • Стоит ли переходить на единицы Em?

    orlov0562
    @orlov0562
    I'm cool!
    Конечно стоит... Вообще, советую посмотреть и почитать какие сейчас размерности существуют, кто из браузеров поддерживает и в каких случаях их используют.. Например, уже есть: vw, vh, vm, rem и т.д.
    Ответ написан
  • Объясните php скрипт?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    тому кто это написал, стоит прострелить колено..

    вот код с комментариями о происходящем
    $inputArr = file('input', FILE_SKIP_EMPTY_LINES); // читаем из файла все данные
    $outputArr = []; // пустой выходной массив
    
    foreach ($inputArr as $line) { // читаем построчно входные данные
    	list($ip, $mask) = explode('/', trim($line)); // разбиваем строку на $ip и $mask, по разделителю '/'
    	$ipAsLongInt = ip2long($ip); // Преобразуем ip адрес в десятичное число
    	$ipAsBinary = decbin($ipAsLongInt); // Преобразуем число в бинарное число
    	$ipAsBinaryWithCorrectLength = str_pad($ipAsBinary, 32, 0, STR_PAD_LEFT); // дополняем слева нулями до длинны 32 символа
    	$outputLine = substr($ipAsBinaryWithCorrectLength, 0, $mask); // Копируем из строки только первые $mask символов
    	$outputArr[] = $outputLine;
    }
    
    $outputRaw = join(PHP_EOL, $outputArr); // Соединяем все строки из массива символом перевода строки
    file_put_contents('output', $outputRaw); // Записываем данные в выходной файл


    И ответ: да, этот код делает то, что надо
    Ответ написан
    1 комментарий
  • Как вывести заголовок и текст?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Как уже ответили выше, надо воспользоваться циклом. Хотелось бы добавить пару рекомендаций:
    1) Не стоит использовать ф-ции семейства mysql_, они устарели. Вместо них надо использовать mysqli_ или PDO
    2) Не стоит смешивать модель данных и работу с базой данных, получится много дублирования кода, т.е. лучше твой класс разделить на два, что-то вроде:

    class Sql {
    
    	private $connectionData = [];
    
    	public function __construct(array $connectionData) {
    		$this->$connectionData = $connectionData;
    	}
    	
    	public function connect(){
    		$ret = false;
    		$dbLink = mysql_connect(
    			$this->connectionData['host'], 
    			$this->connectionData['username'], 
    			$this->connectionData['password']
    		);
    		if (mysql_select_db($this->connectionData['dbname'])) {
    			$ret = $dbLink;
    		}
    		return $ret;
    	}
    	
    	public function get_results($sql) {
    		$ret = false;
    		$results = mysql_query($sql);
    		if (mysql_num_rows($results)) {
    			$ret = [];
    			while ($row = mysql_fetch_assoc($results)) {
    				$ret[] = $row;
    			}
    		}
    		return $ret;
    	}	
    }
    
    class ArticlesModel {
    	private $dbLink = null;
    	
    	public function __construct($dbLink) {
    		$this->dbLink = $dbLink;
    	}
    	
    	public function getAll(){
    		return $this->dbLink->get_results('SELECT * FROM `articles`');
    	}
    }
    
    $connectionData = [
    	'host' => 'localhost',
    	'username' => 'mysql',
    	'pass' => 'mysql',
    	'dbname' => 'mysite',
    ];
    
    $dbLink = (new Sql($connectionData))->connect();
    if (!$dbLink) trigger_error("Can't connect to DB", E_USER_ERROR);
    
    $articlesModel = new ArticlesModel($dbLink);
    if (!$articlesModel) trigger_error("Can't create articles model", E_USER_ERROR);
    
    if ($articles = $articlesModel->getAll()) {
    	foreach ($articles as $article) {
    		echo '<h2>'.$article['title'].'</h2>';
    		echo '<p> '.$article['text'].'</p>';
    		echo '<hr />';
    	}
    }


    Разумеется это не идеальный, простой пример разделения логики, чтобы тебе было понятно как это работает
    Ответ написан
    6 комментариев
  • Почему значение моего куки undefined?

    orlov0562
    @orlov0562
    I'm cool!
    всего скорее, потому что:
    а) тут должен быть относительный путь
    <script type="text/javascript" src="C:\Users\1\Desktop\кликер\js\jquery-cookie-master\src\jquery.cookie.js"></script>

    б) запускать надо не с локального ПК, а веб-сервера
    Ответ написан
    Комментировать
  • Как реализовать переход фона по клику?

    orlov0562
    @orlov0562
    I'm cool!
    Привет.
    Все верно написал, надо Hover на Click поменять. Но, всего скорее просто что-то ты не так менял.
    Выложи исходники на на jsfiddle, чтобы можно было быстро js код поправить и тебе помогу или помогут.
    Ответ написан
    Комментировать
  • Причины медленной работы MSSQL на сервере Hetzner?

    orlov0562
    @orlov0562
    I'm cool!
    Привет!

    Может быть все что угодно, от медленных дисков, до шейпинга пакетов файрволом билайна в этом направлении. Попробуйте то же самое от другого провайдера (из дома например). Если картина такая же, тогда смотрите в сторону загрузки дисков / процессора сервера в момент запроса.

    Если ничего не помогает, советую писать, а лучше звонить в ТП хетцнера
    Ответ написан
    Комментировать
  • Как решить проблему с устаревшими функциями session_is_registered, session_unregister?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    В гугле по запросу "session_is_registered php 5.4"
    function fix_session_register(){
         function session_register(){
             $args = func_get_args();
             foreach ($args as $key){
                $_SESSION[$key]=$GLOBALS[$key];
            }
        }
     
        function session_is_registered($key){
             return isset($_SESSION[$key]); 
        }
     
        function session_unregister($key){
            unset($_SESSION[$key]);
        }
    }
     
    if (!function_exists('session_register')) fix_session_register();
    Ответ написан
  • Как парсить теги?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Надо смотреть на нагрузку и скорость работы остального, если все остальное очень быстро, тогда можно словарь использовать. В противном случае можно и базу подергать, если с настройками базы все ок, то она и так закеширует частые запросы. Если это уник значения и будет уникальный индекс, то выборка не составит труда, если вдруг будет много-много данных, то можно создать memory table и дергать оттуда, ну или использовать любой дополнительный кеширующий механизм... В любом случае, я думаю что скорость обработки тегов как и сам парсинг не будет горлышком бутылки.. Основной тормоз будет на загрузке страниц.
    Ответ написан
    Комментировать
  • Используете ли вы методы защиты форм от спама на Landing Page?

    orlov0562
    @orlov0562
    I'm cool!
    У меня не совсем landing, но есть ряд форм торчащих наружу. Что туда только не пишут..
    Нужно или нет их защищать зависит от кол-во трафика которое на них попадает, если много то и каптча не спасет.
    Тоже самое касается случая когда конкурент или какой-то нехороший человек захочет поспамить. Захотят, найдут способ.

    Чтобы избежать спама на небольшом кол-ве трафика, достаточно, совсем чуть-чуть защититься, например добавить чекбокс "Я не робот", который нужно поставить.. Когда это не помогает, я делаю так: ставлю значение куки js-ом после загрузки страницы и проверяю её после отправки формы уже на бэкэнде.. В качестве значения можно, например, использовать хэш от первых трех цифр ip клиента, которые js-у отдает бэкэнд при генерации страницы. Разумеется, при желании, найдут и обойдут и эту защиту, однако она спасет от самых простых спаммеров, а это 95% спама.. Тот что приедет вручную (армию школьников 1 пост/5р не остановить), чистим вручную и баним по ip..
    Ответ написан
    Комментировать
  • Как сделать такой же наложенный цвет на картинку?

    orlov0562
    @orlov0562
    I'm cool!
    Ах-ха-ха,

    попробуй понос подкорректировать через "Изображение>Коррекция>Цветовой фон/Насыщенность"
    Ответ написан
    Комментировать