Намерете срещане на php низ. Намиране на подниз в низ с помощта на PHP
PHP предлага различни опции за намиране на низове в други низове. Има обичайните функции. Възможно е да се използват регулярни изрази. Разработчикът може да разработи своя собствена версия за търсене на информация, при спазване на правилата на синтаксиса.
Търсенето на низове не се ограничава до потвърждаване на присъствието на желания знак или низ на желаното място. Един обект може да действа като низ - това е по-обемна информационна концепция от просто низ. Търсенето е особено ефективно, когато моментът на откриване е придружен от незабавно решение, вместо да изисква допълнителна обработка.
Основна функционалност за търсене
Търсене - функция strpos(). Неговият резултат е или булева стойност, или позицията на срещане на търсеното (втори параметър) в низа (първи параметър) от позицията (трети параметър). Ако последният параметър не е зададен, търсенето се извършва от нулевата позиция на низа.
В този пример търсенето на PHP в низ е показано с помощта на един знак като пример. Можете да използвате низ вместо символ. PHP не ограничава програмиста в размера на низовете, но разумните ограничения са от съществено значение.
Можете да търсите низове в рамките на низовете по начин, чувствителен към малки и главни букви, от първото или последното срещане и да използвате регулярни изрази. Както във всички други случаи, кодирането на страницата, на която се намира скриптът, е от съществено значение.
В някои случаи има смисъл да се използва вариантът iconv_strpos(), а не просто strpos(). В по-голямата част от случаите търсенето на подниз в PHP низ ще даде идеално точни резултати: достатъчно е да запазите кодирането на страницата и низа в едно и също кодиране.
Характеристики на стандартния подход
Ако търсенето на подниз в PHP низ няма резултат: това, което търсите, не съществува и резултатът ще бъде булева стойност. Ако обаче търсеният подниз започва от нулева позиция, това трябва да се подчертае в операциите за сравнение и анализ на резултата. Когато резултатът е 0, той не е много по-далеч от резултата false.
За разлика от JavaScript, PHP е по-консервативен, когато става въпрос за низове и до днес низовете са си низове. Работата с тях са низови функции: от прости нива на strpos до сложни, използващи регулярни изрази.
Трябва да търсите за:
- вземете решение за посоката на алгоритъма;
- заменете това, което търсите с нещо друго;
- проверка на събитието;
- увеличаване на статистическия брояч и др.
Това е обичайната логика на алгоритъма; JavaScript отиде по-далеч и разпозна "низовете" като обекти. Но на практика само признаването не е достатъчно. Ако се абстрахираме от понятието „низ“ и го разберем като реален обект, PHP ще ни позволи да формулираме въпроса „търсене на низ в низ“ в контекста на реален метод, например ябълка може да бъде узряло, не само когато е червено.
Класическото търсене на думата „червено“ в описание на ябълка не гарантира надежден отговор за зрелостта на плода. Ако ябълката е представена не от низ, а от обект, тогава PHP ще търси низа в низ не като strpos, а като метод на реален обект. Въпреки това, няма гаранция, че функцията strpos ще бъде използвана в тялото на метода.
Стандартни функции в нестандартни решения
Характеристика на обичайната (човешка) обработка на информация: позицията, къде е нещо, има значение, когато това е целта или решението. Във всички останали случаи няма значение къде се намира нещо, важно е да е обозначено и да е основа за по-нататъшни действия.
Търсенето се извършва индиректно във функциите trim, str_replace и др. Налична е интересна опция за търсене, когато се използва едновременно разрушаване/разрушаване и манипулиране на масиви.
Ако използвате цялата функционалност на PHP, търсенето в низ лесно придобива семантика, надхвърля обичайния синтаксис и се превръща в причина да придобиете истински смисъл. Манипулирането на смисъл е по-познато за човек, по-безопасно за алгоритъм, а трансформирането на низове в обекти е като преход от машинни кодове към света на съвременните езици за програмиране.
Низовете са много важен тип данни, с които трябва постоянно да работите, когато решавате проблеми с уеб разработката. Тази статия описва 10 много полезни техники, които ще улеснят живота на PHP програмиста.
Автоматично премахване на html тагове от низ
Когато използвате формуляри, попълнени от потребителя, понякога трябва да премахнете всички ненужни тагове. Тази задача се решава лесно с помощта на функцията strip_tags():
$text = strip_tags($input, "");
Получаване на текста между $start и $end
Такава функция трябва да бъде в арсенала на разработчика: тя получава оригиналния ред, началото и края и връща текста, който се съдържа между $start и $end.
Функция GetBetween($content,$start,$end)( $r = explode($start, $content); if (isset($r))( $r = explode($end, $r); return $r; ) връщане "")
Трансформиране на URL в хипервръзка
Ако поставите URL във формуляр за коментари в блог на WordPress, той автоматично ще се трансформира в хипервръзка. Ако искате да внедрите същата функционалност на вашия уебсайт или уеб приложение, можете да използвате следния код:
$url = "Жан-Батист Юнг (http://www.webdevcat.com)"; $url = preg_replace("#http://(+)#", " ", $url);
Разделяне на текст в масив от 140 знака за Twitter
Може би знаете това Twitterприема съобщения не по-дълги от 140 знака. Ако имате планове да свържете приложението си с популярен сайт за социални съобщения, тогава функция, която изрязва съобщенията до 140 знака, вероятно ще бъде подходяща.
Функция split_to_chunks($to,$text)( $total_length = (140 - strlen($to)); $text_arr = explode(" ",$text); $i=0; $message=""; foreach ($text_arr като $word)( if (strlen($message[$i] . $word . " ")<= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }
Премахване на URL адреса от низа
Много хора оставят URL адреси в коментари в блогове, за да получат трафик или да генерират обратна връзка. Такива връзки замърсяват блога и могат да причинят разочарование за собственика, ако има голям брой от тях. Така че следващата функция ще бъде много полезна!
$string = preg_replace("/\b(https?|ftp|файл):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*/ i", "", $string);
Преобразуване на низ в охлюв
Трябва да генерирате плужек (за постоянна връзка), който е съвместим с целите на SEO? Следната функция приема низ като параметър и връща SEO-съвместим плужек. Просто и ефективно!
Функция slug($str)( $str = strtolower(trim($str)); $str = preg_replace("/[^a-z0-9-]/", "-", $str); $str = preg_replace ("/-+/", "-", $str);
Анализ на CSV файл
CSV (стойности, разделени със запетая) файловете са лесен начин за съхраняване и прехвърляне на данни, а анализирането на такива файлове в PHP е изключително лесно. не ми вярваш Следният код демонстрира обработката на CSV файл:
$fh = fopen("contacts.csv", "r"); while($line = fgetcsv($fh, 1000, ",")) ( echo "Контакт: ($line)"; )
Намиране на низ в друг низ
Ако низ се съдържа в друг низ и трябва да го намерите, тогава проблемът е прост:
Функцията съдържа($str, $content, $ignorecase=true)( if ($ignorecase)( $str = strtolower($str); $content = strtolower($content); ) return strpos($content,$str)? вярно невярно)
Проверка дали даден низ започва с определен модел
Някои езици за програмиране, като Java, имат метод/функция startWith, която ви позволява да проверите дали даден низ започва с определен модел. За съжаление, PHP няма толкова проста вградена функция.
Ние обаче можем да го направим за себе си и то много просто::
Функция String_Begins_With($needle, $haystack) ( return (substr($haystack, 0, strlen($needle))==$needle); )
Подчертавамеимейл от низ
Някога чудили ли сте се как спамерите получават вашите имейл адреси? Просто е. Те вземат уеб страница (например от форум) и анализират html кода, за да извлекат имейл адреси. Кодът по-долу приема низ като параметър и отпечатва всички имейли, съдържащи се в него. Моля, не използвайте този код за спам!
Функция extract_emails($str)( // Регулярен израз, който извлича всички имейли от низ: $regexp = "/()+\@(()+\.)+((2,4))+/i"; preg_match_all ($regexp, $m); return isset($m) : array(); $test_string = "Тестов низ... [имейл защитен]Проверка на други формати: [имейл защитен]; foobar
стррипос - Намерете позицията на последното появяване на подниз без значение за главни и малки букви в низ
Описание
Намерете цифровата позиция на последното появяване на игла в низа на купа сено.
За разлика от strpos(), strripos()е нечувствителен към главни и малки букви.
Параметри
Низът, в който да се търси.
Ако needle не е низ, той се преобразува в цяло число и се прилага като поредна стойност на символ. Това поведение е отхвърлено от PHP 7.3.0 и разчитането на него е силно обезкуражено. В зависимост от планираното поведение, иглата трябва или да бъде изрично прехвърлена към низ, или изрично извикване към chr()трябва да се извърши.
Ако е нула или положителен, търсенето се извършва отляво надясно, като се пропускат първите отместени байтове на купа сено.
Ако е отрицателен, търсенето се извършва отдясно наляво, като се пропускат последните отместени байтове на купа сено и се търси първото появяване на needle.
Това на практика търси последното появяване на игла преди последните отместени байтове.
Върнати стойности
Връща позицията, където съществува иглата спрямо началото на низа от купа сено (независимо от посоката на търсене или отместването).
Забележка: Позициите на низовете започват от 0, а не от 1.
Се завръща НЕВЯРНОако иглата не е намерена.
Внимание
Тази функция може да върне булево значение НЕВЯРНО, но може също да върне небулева стойност, която се оценява на НЕВЯРНО. Моля, прочетете раздела за булеви стойности за повече информация. Използвайте оператора === за тестване на върнатата стойност на тази функция.
Примери
Пример #1 Прост strripos()пример
$haystack = "ababcd" ;
$игла = "aB" ;
$pos = strripos ($купа сено, $игла);
if ($pos === false ) (
echo "Съжаляваме, не намерихме ($needle ) в ($haystack )" ;
) иначе (
echo "Поздравления!\n" ;
echo "Намерихме последната ($needle ) в ($haystack ) на позиция ($pos )" ;
}
?>
PHP функцията strpos се използва за намиране на подниз в даден низ. Връща числовата стойност на първото появяване на търсения подниз.
Синтаксис за използване на strpos
Функцията PHP strpos се използва, както следва:
$position = strpos($given_string, $search_string);
Забележка: Когато търсите с функцията strpos, малките и малки букви са чувствителни. Така че търсенето на ключовите думи „Тест“ и „тест“ ще даде различни резултати.
Броенето на позиции започва от 0, а не от 1.
Използвайки демо версии, ще демонстрирам използването на тази функция за търсене на даден подниз и въведена от потребителя стойност.
Прост пример за използване на функцията strpos
Вижте следния пример, където използвах стойности за търсене, за да демонстрирам как работи функцията PHP strpos:
Вижте онлайн демонстрация и код
PHP код:
"; echo " Даденият substr намерен на: $position"; ) ?>
strpos PHP пример:
Низът съдържа думата за търсене: „strpos“! Даденият подниз е намерен на: 10
Пример за използване на strpos за търсене на въведен от потребителя термин
Този метод може да бъде полезен в определени сценарии. Например, когато формуляр не позволява въвеждането на определени думи.
Освен това можете да проверите дали думата, зададена от потребителя за търсене, се съдържа в изходния низ. Въз основа на това можете да изведете определени резултати под формата на отговор.
В тази демонстрация потребителят може да въведе термин в текстово поле. След като се щракне върху бутона, функцията strpos се изпълнява, за да провери дали оригиналният низ съдържа подниз. На екрана ще се покаже следното съобщение:
За демонстрацията използвах следния изходен ред:
$source_string = "В тази демонстрация използвам въведена от потребителя дума за търсене, за да проверя дали низът съдържа дума за търсене или не, като използвам strpos!";
Опитайте да въведете различни букви или думи за търсене, за да видите дали функцията връща false. Освен това опитайте да въведете термини с главни или малки букви, за да видите разликата.
Следният пример на PHP strpos utf 8 беше използван за това:
"; if ($posistion === false) ( echo "Изходният низ не съдържа: "$search_term"!"; ) else ( echo "Низът съдържа думата за търсене: "$search_term"!"; echo " Даденият подниз е намерен на: $position"; ) echo "