Строки являются очень важным видом данных, и вам приходится ежедневно иметь дело с ними при выполнении задач веб-разработки. В этой статье я собрал 10 чрезвычайно полезных функций и фрагментов кода, чтобы облегчить жизнь вашему php-разработчику.
Автоматически удалять HTML-теги из строки
В пользовательских формах вы можете удалить все ненужные HTML-теги. Это легко сделать с помощью функции strip_tags ():
$text = strip_tags($input, "");
Источник: http://phpbuilder.com/columns/Jason_Gilmore060210.php3?page=2
Получить текст между $ start и $ end
Это функция, которую каждый веб-разработчик должен иметь в своем наборе инструментов для будущего использования: дать ему строку, начало и конец, и он вернет текст, содержащий $ start и $ end.
function GetBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
Источник: http://www.jonasjohn.de/snippets/php/get-between.htm
Преобразовать URL в гиперссылки
Если вы оставите URL-адрес в форме комментариев блога WordPress, он автоматически преобразуется в гиперссылку. Если вы хотите реализовать те же функции на своем веб-сайте или в своем веб-приложении, вы можете использовать следующий код:
$url = "Jean-Baptiste Jung (http://www.webdevcat.com)";
$url = preg_replace("#http://([A-z0-9./-]+)#", '<a href="http://www.catswhocode.com/blog/$1" style="font-size: 12px; vertical-align: baseline; background-color: transparent; margin: 0px; padding: 0px; color: #3777af; text-decoration: none; font-weight: bold">$0</a>', $url);
Источник: http://phpbuilder.com/columns/Jason_Gilmore060210.php3?page=2
Разделить текст на массив из 140 символов для Twitter
Как вы, наверное, знаете, Twitter принимает сообщения длиной не более 140 символов. Если вы хотите взаимодействовать с популярным сайтом обмена социальными сообщениями, вам наверняка понравится эта функция, которая позволит вам урезать ваше сообщение до 140 символов.
function split_to_chunks($to,$text){
$total_length = (140 - strlen($to));
$text_arr = explode(" ",$text);
$i=0;
$message[0]="";
foreach ($text_arr as $word){
if ( strlen($message[$i] . $word . ' ') <= $total_length ){
if ($text_arr[count($text_arr)-1] == $word){
$message[$i] .= $word;
} else {
$message[$i] .= $word . ' ';
}
} else {
$i++;
if ($text_arr[count($text_arr)-1] == $word){
$message[$i] = $word;
} else {
$message[$i] = $word . ' ';
}
}
}
return $message;
}
Источник: http://www.phpsnippets.info/split-text-up-into-140-char-array-for-twitter
Удалить URL из строки
Когда я вижу количество URL-адресов, которые люди пытаются оставить в комментариях к моему блогу, чтобы получить трафик и / или обратные ссылки, я думаю, что я обязательно должен попробовать этот фрагмент!
$string = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i', '', $string);
Источник: http://snipplr.com/view.php?codeview&id=15236
Конвертировать строки в слизни
Нужно создать слагов (постоянные ссылки), которые оптимизированы для SEO? Следующая функция принимает строку в качестве параметра и возвращает SEO-дружественный слаг. Просто и эффективно!
function slug($str){
$str = strtolower(trim($str));
$str = preg_replace('/[^a-z0-9-]/', '-', $str);
$str = preg_replace('/-+/', "-", $str);
return $str;
}
Источник: http://snipplr.com/view.php?codeview&id=2809
Разобрать CSV файлы
Файлы CSV (значения, разделенные запятыми) являются простым способом хранения данных, а их синтаксический анализ с помощью PHP очень прост. Не веришь мне? Просто используйте следующий фрагмент и убедитесь сами.
$fh = fopen("contacts.csv", "r");
while($line = fgetcsv($fh, 1000, ",")) {
echo "Contact: {$line[1]}";
}
Источник: http://phpbuilder.com/columns/Jason_Gilmore060210.php3?page=1
Поиск строки в другой строке
Если строка содержится в другой строке, и вам нужно искать ее, это очень умный способ сделать это:
function contains($str, $content, $ignorecase=true){
if ($ignorecase){
$str = strtolower($str);
$content = strtolower($content);
}
return strpos($content,$str) ? true : false;
}
Источник: http://www.jonasjohn.de/snippets/php/contains.htm
Проверьте, начинается ли строка с определенного шаблона
В некоторых языках, таких как Java, есть метод / функция startWith, который позволяет проверить, начинается ли строка с определенного шаблона. К сожалению, PHP не имеет аналогичной встроенной функции.
Как бы то ни было, мы просто должны построить свое собственное, что очень просто:
function String_Begins_With($needle, $haystack {
return (substr($haystack, 0, strlen($needle))==$needle);
}
Источник: http://snipplr.com/view.php?codeview&id=2143
Извлечение писем из строки
Задумывались ли вы, как спаммеры могут получить ваш адрес электронной почты? Это просто, они получают веб-страницы (например, форумы) и просто анализируют html для извлечения писем. Этот код принимает строку в качестве параметра и будет печатать все электронные письма, содержащиеся внутри. Пожалуйста, не используйте этот код для спама
function extract_emails($str){
// This regular expression extracts all emails from a string:
$regexp = '/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})+/i';
preg_match_all($regexp, $str, $m);
return isset($m[0]) ? $m[0] : array();
}
$test_string = 'This is a test string...
test1@example.org
Test different formats:
test2@example.org;
<a href="test3@example.org">foobar</a>
<test4@example.org>
strange formats:
test5@example.org
test6[at]example.org
test7@example.net.org.com
test8@ example.org
test9@!foo!.org
foobar
';
print_r(extract_emails($test_string));
Источник: http://www.jonasjohn.de/snippets/php/extract-emails.htm
