﻿<h1 class=p1>Функции поиска в тексте</h1>
<table border="0" cellspacing="10">
    <tr valign="top">
        <td>
            <a class=bluelink href="#1" title="Функция возвращает часть строки">substr()</a>&nbsp;<br>
            <a class=bluelink href="#2" title="Функция возвращает позицию в строке, в которой начинается искомая подстрока ">strpos()</a>&nbsp;<br>
            <a class=bluelink href="#3" title="Функция ищет в строке последнюю позицию, где встречается искомый символ">strrpos()</a>&nbsp;<br>
        </td>
        <td>
            <a class=bluelink href="#4" title="Функция возвращает участок строки, начиная с первого фрагмента, указанного в параметре и до конца строки">strstr()</a>&nbsp;<br>     
            <a class=bluelink href="#5" title="Аналог функции strstr()">strchr()</a>&nbsp;<br>
            <a class=bluelink href="#6" title="Аналог функции strstr(), нечувствительна к регистру">stristr()</a>&nbsp;<br>
        </td>
        <td>
            <a class=bluelink href="#7" title="Функция поиска последнего вхождения подстроки">strrchr()</a>&nbsp;<br>       
            <a class=bluelink href="#8" title="Функция подсчета количество вхождений фрагмента в строку">substr_count()</a>&nbsp;<br>
            <a class=bluelink href="#9" title="Функция определения присутствия начальных символов в строке">strspn()</a>&nbsp;<br>
        </td>
        <td>
            <a class=bluelink href="#10" title="Функция определения отсутствия начальных символов в строке">strcspn()</a>&nbsp;<br>     
        </td>
    </tr>
</table>
<br>

<a name=1></a><h1 class=p1><b>substr()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
string <b>substr</b><em class=gr>(</em>string <b>string</b>, int <b>start</b>[, int <b>length</b>]<em class=gr>)</em>
</pre></blockquote>
<p class=text>Эта функция возвращает часть строки. Первый аргумент – исходная строка; второй – положение в строке, которую надо вернуть, первого символа (отсчет начинается с нуля); третий – длина строки в символах, которую надо вернуть. Если третий аргумент не указан, то возвращается вся оставшаяся часть строки.</p>
<p class=prim><i>Пример:</i></p>

<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$string</b> = <b>substr</b>("Hello, world!", 6, 2);
   <em class=gr>echo (</em></em><em class=gr>)</em>; 
<em class=red>?&gt;</em>
</pre></blockquote>

<p class=text>Результат выполнения – символ &quot;<b>w</b>&quot;. Если же третий параметр не указывать, т.е. написать<br>
<b>$string</b> = <b>substr</b>("Hello, world!", 6);<br>
<p class=text>то возвратиться подстрока &quot;world!&quot;.</p>

<br>
<a name=2></a><h1 class=p1><b>strpos()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
string <b>strpos</b>(string <b>haystack</b>, string <b>needle</b>[, int <b>offset</b>])
</pre></blockquote>
<p class=text>Эта функция обеспечивает действие, обратное функции <b>substr</b>. Т.е. она возвращает позицию в строке <b>haystack</b>, в которой найдена переданная ей подстрока <b>needle</b>. Т.е. следующий скрипт</p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$string</b> <em class=gr>=</em> strpos<em class=gr>(</em>"Hello, world!", "world"<em class=gr>)</em>;
   <em class=gr>echo(</em><b>$string</b><em class=gr>)</em>; 
<em class=red>?&gt;</em>
</pre></blockquote>

<p class=text>вернет нам число 7.</p>
<p class=text>Необязательный параметр <b>offset</b> позволяет указать в строке позицию, с которой надо начинать поиск:</p>

<br>
<a name=3></a><h1 class=p1><b>strrpos()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
string <b>strrpos</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Эта функция ищет в строке <b>haystack</b> последнюю позицию, где встречается символ <b>needle</b>.</p>

<br>
<a name=4></a><h1 class=p1><b>strstr()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
string <b>strstr</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция <b>strstr()</b> возвращает участок строки, заданной в параметре <b>haystack</b>, начиная с первого фрагмента, указанного в параметре <b>needle</b> и до конца строки. В случае неудачи функция возвращает <b>false</b>.
<p class=prim><i>Пример:</i></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$url</b> <em class=gr>=</em> "http://www.softtime.ru";
   <b>$www</b> <em class=gr>=</em> <b>strstr</b>(<b>$url</b>,"w");
   <em class=gr>echo (</em><b>$www</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
</pre></blockquote>
<p class=text>Результат: www.softtime.ru</p>
<p class=text>Эта функция чувствительна к регистру. Заметим также, что в случае, если <b>needle</b> не является строкой, то значение преобразуется в целое и используется как код искомого символа.</p>

<br>
<a name=5></a><h1 class=p1><b>strchr()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
string <b>strchr</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Данная функция работает абсолютно идентично функции <b>strstr()</b>:</p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$url</b> <em class=gr>=</em> "http://www.softtime.ru";
   <b>$www</b> <em class=gr>=</em> <b>strstr</b>(<b>$url</b>,"w");
   <em class=gr>echo (</em><b>$www</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
</pre></blockquote>
<p class=text>Результат: www.softtime.ru</p>

<br>
<a name=6></a><h1 class=p1><b>stristr()</b></h1>
<p class=prim><i><b>Синтаксис:</b></i></p>
<blockquote><pre>
string <b>stristr</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Эта функция работает абсолютно аналогично функции <b>strstr</b>(), только является нечувствительной к регистру.</p>

<br>
<a name=7></a><h1 class=p1><b>strrchr()</b></h1>
<p class=prim><i><b>Синтаксис:</b></i></p>
<blockquote><pre>
string <b>strrchr</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>А эта функция отличается от аналогичных ей тем, что осуществляет поиск последнего вхождения подстроки. Т.е. функция <b>strrchr</b>() возвращает участок строки, заданной в параметре <b>haystack</b>, начиная с последнего фрагмента, указанного в параметре <b>needle</b> и до конца строки. В случае неудачи возвращает <b>false</b>.</p>
<p class=text>Чувствительна к регистру. В случае, если <b>needle</b> не является строкой, то значение преобразуется в целое и используется как код искомого символа.</p>
<p class=text>Даже не знаю, что придумать в качестве примера на эту функцию. Ну давайте посмотрим, какая у нас директория (у меня, естественно) прописана последней в переменной окружения $<b>PATH:</b></p>
<blockquote><pre>
&lt;<b>p</b>>
   &lt;<b>font</b> color=red> Это все, что у меня есть :)&lt;/<b>font</b>>
&lt;/<b>p</b>>
<em class=red>&lt;?</em>
   <em class=gr>echo (</em><b>$PATH</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
&lt;<b>p</b>>
   &lt;<b>font</b> color=red> А это – из последнего:&lt;/<b>font</b>>
&lt;/<b>p</b>>
<em class=red>&lt;?</em>
   <b>$dir</b> = <b>substr</b><em class=gr>(</em><b>strrchr</b>(<b>$PATH</b>, ";"), 1<em class=gr>)</em>;
   <em class=gr>echo (</em><b>$dir</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
</pre></blockquote>
<p class=text>И вот что мы видим в результате:</p>

<br>
<a name=8></a><h1 class=p1><b>substr_count()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
int <b>substr_count</b><em class=gr>(</em>string <b>haystack</b>, string <b>needle</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция <b>substr_count</b>() находит количество вхождений фрагмента в строку. Она возвращает число фрагментов <b>needle</b>, присутствующих в строке <b>haystack</b>.</p>
<p class=prim><i>Пример:</i></p>

<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$str</b> <em class=gr>=</em> "dfhd@ffs@dfskfk@asas";
   <b>$substr_count</b> = <b>substr_count</b><em class=gr>(</em>$str,"@"<em class=gr>)</em>;
   <em class=gr>echo (</em><b>$substr_count</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
</pre></blockquote>
<p class=text>Результат: 3.</p>

<br>
<a name=9></a><h1 class=p1><b>strspn()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
int <b>strspn</b><em class=gr>(</em>string <b>str1</b>, string <b>str2</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция <b>strspn</b>() определяет присутствие начальных символов в строке. Она возвращает длину начального фрагмента строки <b>str1</b>, состоящего полностью из символов, которые есть в строке <b>str2</b>.</p>
<p class=prim><i>Пример:</i></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$str</b> <em class=gr>=</em> "dfhd@ffs@dfskfk@asas";
   <b>$substr_count</b> <em class=gr>=</em> <b>strspn</b><em class=gr>(</em><b>$str</b>,"df"<em class=gr>)</em>;
   <em class=gr>echo (</em><b>$substr_count</b><em class=gr>)</em>;
<em class=red>?&gt;</em>
</pre></blockquote>
<p class=text>Результат: 2.</p>

<br>
<a name=10></a><h1 class=p1><b>strcspn()</b></h1>
<p class=prim><i>Синтаксис:</i></p>
<blockquote><pre>
int <b>strcspn</b><em class=gr>(</em>string <b>str1</b>, string <b>str2</b><em class=gr>)</em>
</pre></blockquote>

<p class=text>Обратная функции <b>strspn</b>() функция <b>strcspn</b>() Определяет отсутствие начальных символов в строке.</p>
<p class=text>Функция <b>strcspn</b>() возвращает длину начального фрагмента строки <b>str1</b>, состоящего полностью не из символов, которые есть в строке <b>str2</b>.</p>