Чтобы быть эффективным, у веб-разработчика должен быть набор инструментов с фрагментами кода, которые он может использовать и использовать повторно при необходимости. В этой статье я собираюсь показать вам 10 чрезвычайно полезных фрагментов PHP-кода, которые можно добавить в набор инструментов веб-разработчика.
Выделите конкретные слова в фразе
Иногда, например, при отображении результатов поиска, это хорошая идея, чтобы выделить конкретные слова. Это именно то, что может сделать следующая функция:
function highlight($sString, $aWords) { if (!is_array ($aWords) || empty ($aWords) || !is_string ($sString)) { return false; } $sWords = implode ('|', $aWords); return preg_replace ('@\b('.$sWords.')\b@si', '<strong style="background-color:yellow">$1</strong>', $sString); }
Источник: http://www.phpsnippets.info/highlights-words-in-a-phrase
Получите ваших средних подписчиков Feedburner
В последнее время у Feedburner было много проблем, и трудно сказать, что предоставленная информация все еще актуальна. Этот код захватит количество ваших подписчиков за последние 7 дней и вернет среднее значение.
Получите ваших средних подписчиков Feedburner
В последнее время у Feedburner было много проблем, и трудно сказать, что предоставленная информация все еще актуальна. Этот код захватит количество ваших подписчиков за последние 7 дней и вернет среднее значение.
function get_average_readers($feed_id,$interval = 7){ $today = date('Y-m-d', strtotime("now")); $ago = date('Y-m-d', strtotime("-".$interval." days")); $feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $feed_url); $data = curl_exec($ch); curl_close($ch); $xml = new SimpleXMLElement($data); $fb = $xml->feed->entry['circulation']; $nb = 0; foreach($xml->feed->children() as $circ){ $nb += $circ['circulation']; } return round($nb/$interval); }
Источник: http://www.catswhoblog.com/how-to-get-a-more-relevant-feedburner-count
Автоматическое создание пароля
Хотя я лично предпочитаю, чтобы пользователи сами выбирали свой пароль, клиент недавно попросил меня автоматически создавать пароли при создании новой учетной записи.
Следующая функция является гибкой: вы можете выбрать желаемую длину и силу для пароля.
function generatePassword($length=9, $strength=0) { $vowels = 'aeuy'; $consonants = 'bdghjmnpqrstvz'; if ($strength >= 1) { $consonants .= 'BDGHJLMNPQRSTVWXZ'; } if ($strength >= 2) { $vowels .= "AEUY"; } if ($strength >= 4) { $consonants .= '23456789'; } if ($strength >= 8 ) { $vowels .= '@#$%'; } $password = ''; $alt = time() % 2; for ($i = 0; $i < $length; $i++) { if ($alt == 1) { $password .= $consonants[(rand() % strlen($consonants))]; $alt = 0; } else { $password .= $vowels[(rand() % strlen($vowels))]; $alt = 1; } } return $password; }
Источник: http://www.phpsnippets.info/generate-a-password-in-php
Сжать несколько файлов CSS
Если на вашем сайте используются разные CSS-файлы, их загрузка может занять довольно много времени. Используя PHP, вы можете сжать их в один файл без лишних пробелов или комментариев.
Этот фрагмент ранее обсуждался в моей статье « 3 способа сжатия CSS-файлов с помощью PHP ».
header('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* your css files */ include('master.css'); include('typography.css'); include('grid.css'); include('print.css'); include('handheld.css'); ob_end_flush();
Источник: http://www.phpsnippets.info/compress-css-files-using-php
Получить короткие URL для Twitter
Ты в твиттере ? Если да, вы, вероятно, используете сокращение URL, такое как bit.ly или TinyUrl, чтобы поделиться своими любимыми сообщениями в блоге и ссылками в сети.
Этот фрагмент принимает URL-адрес в качестве параметра и возвращает короткий URL-адрес.
function getTinyUrl($url) { return file_get_contents("http://tinyurl.com/api-create.php?url=".$url); }
Источник: http://www.phpsnippets.info/convert-url-to-tinyurl
Рассчитать возраст, используя дату рождения
Передайте дату рождения этой функции, и она вернет возраст человека; очень полезно при создании сообществ или социальных сетей.
function age($date){ $year_diff = ''; $time = strtotime($date); if(FALSE === $time){ return ''; } $date = date('Y-m-d', $time); list($year,$month,$day) = explode("-",$date); $year_diff = date("Y") – $year; $month_diff = date("m") – $month; $day_diff = date("d") – $day; if ($day_diff < 0 || $month_diff < 0) $year_diff–; return $year_diff; }
Source: John Karry on http://www.phpsnippets.info/calculate-age-of-a-person-using-date-of-birth
Calculate execution time
For debugging purposes, it is a good thing to be able to calculate the execution time of a script. This is exactly what this piece of code can do.
//Create a variable for start time $time_start = microtime(true); // Place your PHP/HTML/JavaScript/CSS/Etc. Here //Create a variable for end time $time_end = microtime(true); //Subtract the two times to get seconds $time = $time_end - $time_start; echo 'Script took '.$time.' seconds to execute';
Source: http://phpsnips.com/snippet.php?id=26
Maintenance mode with PHP
When updating your site, it is generally a good thing to temporarily redirect your users to a “Maintenance” page so they will not see any critical info such as error messages.
This is generally done using an .htaccess file, but it can be done easily with PHP:
function maintenance($mode = FALSE){ if($mode){ if(basename($_SERVER['SCRIPT_FILENAME']) != 'maintenance.php'){ header("Location: http://example.com/maintenance.php"); exit; } }else{ if(basename($_SERVER['SCRIPT_FILENAME']) == 'maintenance.php'){ header("Location: http://example.com/"); exit; } } }
Source: http://www.phpsnippets.info/easy-maintenance-mode-with-php
Prevent js and css files from being cached
By default, external files such as javascript and css are cached by the browser. If you want to prevent this from caching, simply use this easy tip:
<link href="/stylesheet.css?<?php echo time(); ?>" rel="stylesheet" type="text/css" /&glt;
The result will look like this:
<link href="/stylesheet.css?1234567890" rel="stylesheet" type="text/css" /&glt;
Source: http://davidwalsh.name/prevent-cache
Add (th, st, nd, rd, th) to the end of a number
Another useful snippet which will automatically add st, nd, rd or th after a number.
function make_ranked($rank) { $last = substr( $rank, -1 ); $seclast = substr( $rank, -2, -1 ); if( $last > 3 || $last == 0 ) $ext = 'th'; else if( $last == 3 ) $ext = 'rd'; else if( $last == 2 ) $ext = 'nd'; else $ext = 'st'; if( $last == 1 && $seclast == 1) $ext = 'th'; if( $last == 2 && $seclast == 1) $ext = 'th'; if( $last == 3 && $seclast == 1) $ext = 'th'; return $rank.$ext; }