Php текстови функции



Дата28.01.2017
Размер88.67 Kb.

PHP Текстови функции


Възможността да манипулираме и оперираме с текстови низове е много полезна страна на езика. Целта на това упражнение е да представи основните функции на PHP за работа с стрингове. Вниманието ще бъде насочено най-вече към функциите за търсене и замяня в текстове, за премахване на интервалите в текстта и функциите за форматно извеждане на текстта.

  1. Търсене на данни в стринг с функция strpos

string strpos(string haystack, string needle[, int offset])
Тази функция връща позицията в стринга haystack, в която се намира търсения текст needle, незадължителния параметър offset показва позицията, от която тябва да започне търсенето. Ако функцията не намери стинга, връща false.

Пример1: Нека в последователността от числа намерим цифрата 5.

$numberedString = "1234567890";


$fivePos = strpos($numberedString, "5");

echo "Позицията на 5 във текстта е ”.$fivePos;



Резултатът:

Позицията на 5 във текстта е 4

Обърнете внимание, че броенето на позициите започва от 0. Освен това, ако търсения текст съдържаше повече от един символ "567890", пак резултата щеше да бъде 4, азщото това е позицията от която започва търсения низ.

Пример2. Да намерим всички позиции, където се среща определен текст в текстов низ

За да се реши този проблем функцията strpos има трети аргумент, който определя от къде ще започне следващото търсене. Ако съхраните позицията на последно срещнатия текст и към нея прибавите +1, срещнатия текст ще бъде прескочен и така ще бъде намерен следващия.

$numberedString = "1234567890123456789012345678901234567890";


$fivePos = strpos($numberedString, "5");

echo "The position of 5 in our string was $fivePos";

$fivePos2 = strpos($numberedString, "5", $fivePos + 1);

echo "
The position of the second 5 was $fivePos2";

Резултат:

The position of 5 in our string was 4


The position of the second 5 was 14

Задача 1. Намерете всички позиции, където се среща числото 5 в текстовия низ 1234567890123456789012345678901234567890.

Примерен код:
$numberedString = "1234567890123456789012345678901234567890";

$offset = 0; // initial offset is 0

$fiveCounter = 0;
// First check if there is a "5" at position 0.

if(strpos($numberedString, "5") == 0){

$fiveCounter++;

echo "
Five #$fiveCounter is at position - 0";

}
// Check the rest of the string for 5's

while($offset = strpos($numberedString, "5", $offset + 1)){

$fiveCounter++;

echo "
Five #$fiveCounter is at position - $offset";

}

На екрана ще се изпише:



Five #1 is at position - 4
Five #2 is at position - 14
Five #3 is at position - 24
Five #4 is at position - 34

Задача: Напишете код на PHP, който да проверява дали е въведен правилно e-mail адрес.

Решение:



$x="";


if(isset($_POST["T1"]))$x=$_POST["T1"];

?>








if(isset($_POST["T1"])){

$x=$_POST["T1"];

$flag=TRUE;

if(strlen($x)<6)$flag=FALSE; //d@h.bd

elseif(($n=strpos($x,"@"))==0)$flag=FALSE;

elseif(($n2=strpos($x,".",$n))===FALSE)$flag=FALSE;

elseif($n2<$n+2)$flag=FALSE; //One symbol between "@" and "."

elseif(strlen($x)<$n2+2)$flag=FALSE; //At least two symbols after "."

if($flag)echo "Valid e-mail address";



else echo "Invalid e-mail address";

}

?>


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница