Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB8_PHP.doc
Скачиваний:
2
Добавлен:
09.11.2018
Размер:
95.74 Кб
Скачать

Комментарии к заданию

Результирующая строка получится, если сцепить подстроки исходной стро­ки. Чтоб определить какие подстроки потребуются для решения задачи, надо составить схему строки и указать подстроки, номера начальных и конеч­ных позиций, для поиска которых использовать функцию strpos. Все но­мера должны входить в число допустимых номеров, в частности, не должны превышать длину строки. Рекомендуется при отладке выводить значения найденных номеров позиций.

В начале исполнения программы значения символьных переменных не определены, функция isset позволяет проверить существование переменной. Длина строки $str без пробелов strlen( trim($str) ).

Программы следует набирать только в редакторе, работающем в коде ASCII. Сохранять программы следует в своем каталоге с именами ФИОlab8.php и ФИОlab8.html. Локальное выполнение программ возможно только из каталога документов web - сервера D:\WebServers\home\localhost\www\. Перед выполнением следует скопировать программы в этот каталог, а после выполнения удалить их оттуда. Начинать работу следует с запуска программы Run.exe, заканчивать запуском программы Stop.exe. Обе программы находятся в каталоге D:\WebServers\etc. Рекомендуется создать соответствующие этикетки на рабочем столе. Адрес для запуска PHP программы выглядит следующим образом

http://localhost/ФИОlab8.php

После отладки PHP – скрипта запустить HTML программу

http://localhost/ФИОlab8.html

Пример

В исходной строке длиной не более 70 символов находится предложение, состоящее не менее чем из двух слов. Сформировать новую строку, в которой из последнего слова предложения удалена первая буква.

Схема строки $str

N1 – номер позиции последнего пробела в предложении (но не в строке); NEnd – количество символов в предложении. Подстроки: S1=strin(0 : N1) – включает пробел; S2=strin(N1+2 : Nend-1) – начинается со второй буквы последнего слова.

S1 S2

 

слово1 слово2 слово3.

↑ ↑

N1 Nend

Из задания следует, что длина результирующей строки на 1 меньше исходной. Новая строка создается из двух подстрок S1 и S2 исходной строки, которые формируются по позициям N1 и NEnd. Все действия выполняют со строкой с удаленными начальными и конечными пробелами - NEnd вычисляют после применения trim. Последний пробел (N1) меж­ду словами станет первым, если просматривать предложение справа налево.

Программы

<?php

if (!isset($strin)):

$strin = "Word1 word2 word3."; //для отладки без ввода

endif;

echo $strin,"<BR>";

$str = trim($strin); // только предложение

$Nend = strlen($str); // длина предложения

$N1 = strrpos($str, " "); //позиция последнего пробела

$lengthword= ($Nend - 1) - $N1; //длина последнего слова

$strout = substr($str, 0, $N1+ 1) . substr($str, -($lengthword - 1));

//$p1 = substr($str, 0, $N1+ 1);// вычисление и

//echo $N1," p1=", $p1,"<BR>"; // печать для отладки

//$p2 = substr($str, -($lengthword - 1));// вычисление и

//echo $lengthword, " p2=", $p2,"<BR>"; // печать для отладки

echo "В последнем слове предложения удалить первую букву<br>";

echo "<font face='courier new' size='5'>$strout</font> <br>";

?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title> пример HTML - формы </title></head>

<body>

<center>

<form action="lab8.php" method="POST">

Задание: <strong><font size="+1" color="#0000FF">Вариант задания </font></strong><br>

<div align="left"><input type="RESET" value="Стереть"></div>

СТРОКА <input type="text" name="strin" size="70"><br>

<input type="SUBMIT" value="отРедактировать">

</form>

</center>

</body>

</html>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]