Тази книга представлява сборник с практически примери по програмиране на PHP. В нея се дават решения не само на прости, но и на по-сложни задачи, за да бъде интересна, както за начинаещите, така и за действащите програмисти.
Примерите обхващат:
• получаване на данни от потребителя и за потребителя;
• обработката на низове, преобразуване на масиви и извличане на уникални елементи от масива;
• всевъзможни трикове при работата с време и дата.
• полезни примери, демонстриращи работата с файлове – преобразуване на файловите формати XLSX, CSV, XML, както и работа с графични формати;
• работа с Cookies и сесии;
• обектно-ориентирано програмиране. Заедно с останалите примери са разгледани и три реални класа, които може да използвате в своите проекти;
• графични възможности на езика РНР. Тук примерите са с различна сложност – от рисуването на графични примитиви, до графики и хистограми, и то без използването на странични библиотеки;
• използване на математически функции – генериране на случайни числа, преобразуване между бройни системи, закръгляне и форматиране на числа;
• работа с бази данни. Разгледани са разширения за работа с бази данни – PDO и mysqli. Особено внимание е отделено и на работата с база данни, но не със средствата на PHP, а посредством Magento API – програмен интерфейс на система за управление на Интернет магазин;
• повече от 30 практически примера, свързани с предаването на данни по мрежата.
Примерите в книгата са щателно тествани, а кодът към тях е предоставен за безплатно сваляне.
PHP7 - 200 готови решения
Съдържание
Въведение…10
Част 1. Получаване на данни от потребителя и за потребителя …12
1. Получаване на данни с методите GET и POST…12
2. Комбиниран начин за получаване на данните на форма…15
3. Филтриране на данни. Защита на сценария…16
4. Обработка на зависими и независими превключватели…18
5. Списъци или предаване на масиви в сценарий…21
6. Проверка на число…23
7. Получаване на IP адреса…24
8. Получаване на информация по IP адрес. Определяме града и държавата на потребителя…25
9. Определяне на браузъра на потребителя …26
10. Определяне на мобилния браузър…27
Част 2. Обработка на низове…28
11. Определяне на броя на символите в низ. Проверка за празен низ…28
12. Търсене на всички съвпадения на подниз в низ…29
13. Замяна на всички съвпадения на подниз…31
14. Изтриване на HTML тагове…31
15. Показване на текстов файл в браузъра…32
16. Премахване на излишните интервали от низ…33
17. Изрязване на низ…34
18. Форматиране на дължината на низа…36
19. Преобразуване на символите в техните HTML еквиваленти…36
20. Сравняване на низове…37
Част 3. Работим с време и дата…40
21. Използване на type=”date”…40
22. Проверка за коректността на датата…42
23. Настройка на PHP за коректна работа с дати…43
24. Създаване на дата по низ…44
25. Работа с времеви интервали…44
26. Получаване на времеви отпечатък (timestamp)…46
27. Форматиране на времеви отпечатък…47
28. Дата по произволен низ…48
29. Изчисляване на броя на дните между две дати…49
30. Подробна разлика между дати…50
Част 4. Работа с масиви…52
31. Сериализация на масив…52
32. Показване на масив за дебъг…54
33. Извеждане на асоциативен масив в браузъра…55
34. Сливане на масиви…57
35. Обхождане на неасоциативен масив…57
36. Сортиране на масив в азбучен ред по стойности…58
37. Сортиране на масив по ключове…59
38. Разбъркване на масив…60
39. Извличане на уникалните елементи от масива…61
40. Опаковане на променливи в масив и извличането им от масив…61
Част 5. Потребителски функции…63
41. Получаване на реалния IP адрес на клиента…63
42. Проверка на имейл адрес…64
43. Генериране на парола…65
44. Рекурсивно изтриване на папка…66
45. Иницииране на изтегляне на файл…67
46. Компресиране на файлове в движение…69
47. Разопаковане на ZIP архив…70
48. Конвертиране на URL в хипервръзка…71
49. Промяна на размера на изображение в движение…71
50. Облак тагове с PHP…72
Част 6. Файлове…75
51. Четене на целия файл в низ…76
52. Четене на файл в масив. Извеждане на цитат на деня…76
53. Извеждане на изходния код на PHP файл…77
54. Четене и запис във файл в двоичен режим…79
55. Съхраняваме масив във файл. Записване на низ във файл…80
56. Проверяваме за съществуването на файла…83
57. Извеждаме съдържанието на папка…84
58. Информация за достъпното дисково пространство…86
59. Работим с блокиране на файлове…87
60. Времето на последен достъп до файла…89
Част 7. Работим с файлове в различни формати…91
61. Преобразуване от XLSX в CSV…91
62. Импорт на данни от PHP в Excel…92
63. Вмъкване на изображение в клетка на Excel таблица…95
64. Четене на данни от Excel…97
65. Парсинг на CSV файла…99
66. Разбор на CSV редове на стари версии на PHP (до версия 5.3)…100
67. Парсинг на XML файл…103
68. Генериране на XML файл…105
69. Нестандартният формат Excel 2003 XML…108
70. Импортиране на ценова листа от CSV формат в база данни MySQL…111
71. Съществено ускорение на импорта в Magento…117
72. Преобразуване на графични формати…121
Част 8. Съхранение на данни в Cookies и сесии…125
73. Установяване на Cookies…125
74. Прост сценарий за установяване на Cookies…128
75. Правилно изтриване на Cookies…128
76. Сценарий за добавяне на продукт в количката…129
77. Изтриване от количката…131
78. Промяна на количеството в количката…132
79. Създаване на сесии…133
80. Автоматично създаване на сесия …135
81. Добавяне на променливи в сесия. Стар и нов способ…135
82. Авторизация и използване на сесии…136
83. Отделен сценарий за logout.php…139
Част 9. Обектно-ориентирано програмиране…140
84. Прост клас на PHP…140
85. Добавяме конструктори и деконструктори в нашия клас…142
86. Наследяване и полиморфизъм…144
87. Абстрактни методи…145
88. Използване на final…146
89. Обработка на изключителни ситуации…147
90. Клониране …150
91. Статични членове на класа в PHP 7…151
92. Типажи…152
93. Реален клас: работа с база данни…153
94. Реален клас: шаблонизатор…157
95. Клас number…160
Част 10. Графика и PHP…161
96. Определяне формата на графичен файл…161
97. Получаване на подробна информация за графичния файл…162
98. Извеждаме текст над изображение…163
99. Извеждане на текст, зададен с TTF шрифт…165
100. Определяме цвета на точка от изображението или „Пипетка“ на PHP…166
101. Правим част от изображението прозрачно…166
102. Завъртане на изображението …167
103. Промяна на размера на изображение…167
104. Рисуваме правоъгълник на PHP…169
105. Рисуваме триъгълник…170
106. Рисуваме кръг…171
107. Построяваме хистограма…173
108. Построяване на графика…180
109. Построяване на кръгова диаграма…186
Част 11. Математически функции…192
110. Генерираме случайни числа…192
111. Случайни числа по метода на Туистър…193
112. Преобразуване от десетична в шестнайсетична бройна система и обратно…193
113. Преобразуване от двоична в десетична система и обратно…194
114. Универсална функция за преобразуване на бройни системи…194
115. Закръгляне на число към по-голяма и по-малка стойност…194
116. Закръгляне на число до най-близкото цяло…195
117. Търсене на най-малкото и най-голямото…196
118. Форматиране на число…196
119. Математически изчисления с произволна точност…198
120. Числото pi()…200
121. Проверка на число…200
122. Повдигане на степен и квадратен корен…201
Част 12. Работа с база данни…202
123. Свързване към СУБД (mysqli)…202
124. Свързване към базата данни с помощта на PDO…203
125. Изпълнение на заявки към базата данни (разширението mysqli)…205
126. Предаване на заявка (разширението PDO)…206
127. Получаване на данни (разширение mysqli)…209
128. Получаване на данни (разширението PDO)…209
129. Затваряне на връзката…211
130. Използване на операторите LIKE, LIMIT и IN при работа с PDO…212
131. Добавяне и обновяване на записи с PDO…213
132. Получаваме сумата на колонка…214
133. Сценарий за извеждане на количка на магазин (cart.php)…215
134. Създаване на таблица и извеждане на редовете…217
135. Добавяне на записи в таблицата…220
136. Изтриване на записи от таблицата…223
137. Търсене в таблицата…225
138. Изтриване на всички записи…225
139. Експорт на данни от таблицата във формат CSV…226
140. Импорт на записи от CSV в таблица…228
141. Изчисляване на минимума и максимума в колонка…229
142. Изчисляване на средната стойност в колона…229
Част 13. Работа с Magento API…230
143. Получаване на всички опции (свойства) на атрибут…230
144. Получаване на информация за продуктите в поръчката…231
145. Обновяване на правилата за маркетинг…232
146. Получаване на списък с продукти и друга информация чрез SoapClient…232
147. Директни заявки към базата данни Magento. Свързване към БД…233
148. Получаване на имената на таблиците…235
149. Получаване на всички продукти с помощта на fetchAll()…235
150. Използване на метод fetchCol() за получаване на всички стойности на колонка…236
151. Получаване на една стойност. Метод fetchOne()…236
152. Запис в базата данни…237
153. Експорт на продукти от Magento в XML…238
Част 14. Работа с мрежата…245
154. Изпращане на поща с помощта на сокети…245
155. Комуникираме с уеб сървър чрез сокети…251
156. Извеждане на списък с папките на FTP сървър…251
157. Качване на файл на FTP сървър…252
158. Изтегляме файл от FTP сървър…253
159. Преобразуване на IP адрес в име на домейн…255
160. Преобразуване на име на домейн в IP адрес…255
161. Изпращане на прости съобщения по електронната поща с функция mail()…256
162. Изпращане на HTML съобщения с прикачени файлове…258
163. Изпращане на ценова листа на списък с адреси…260
164. Качване на файлове на сървъра чрез форма…265
165. Премахваме проблема с кеширането на качените изображения…272
166. Изтегляне на страница на сайт по HTTP…272
167. Изтегляне на файлове с предаване на заглавия на сървъра…273
168. Предаваме файл на потребителя. Проста функция за обмен на файлове…274
169. Изтегляне на файлове със скриване на реалните адреси…275
170. Зареждане на файла в паметта на части…277
171. Изтегляне на файл с помощта на cURL…278
172. Изтегляне на двоичен файл и съхранението му на сървъра…280
173. Авторизация на отдалечен сървър с помощта на cURL…281
174. Изтегляне на файл след авторизация…284
175. Проверяваме достъпността на сайт…285
176. Аналог на функция file_get_contents()…286
177. Последният статус в Twitter…287
178. Определяме връзката между потребители в Twitter…288
179. Изтегляне и съхранение на изображения от страница с помощта на cURL…289
180. Определяме размера на файла с помощта на cURL…289
181. Качване на файл на FTP с помощта на cURL…290
182. Реализация на многонишков сървър на PHP…291
183. Прост клиент сървър…295
184. Получаване на писма по протокола IMAP…297
185. Използване на сървъра за активиране на програмни продукти VMProtect. Изпращане на HTML съобщения с помощта на mail()…300
186. Компресиране на извода…302
187. Свързване към SSH сървър и изпълнение на команди…305
188. Използване на странична библиотека за достъп до SSH…306
189. Пренасочване към мобилната версия на сайт…307
190. Реализация на адаптивен дизайн с помощта на Mobile Detect…309
191. Динамичен изглед със средствата на Mobile Detect…310
Част 15. Регулярни изрази…312
192. Получаваме разширението на файл с помощта на регулярни изрази…312
193. Получаваме заглавията на страницата…312
194. Замяна на таг…313
195. Проверка на e-mail адрес…314
196. Отбелязване на връзките…314
197. Селектиране на всички параметри на HTML таговете…315
198. Търсене на e-mail адресите в текст…316
199. Превръщаме e-mail във връзка…317
200. Изтриване на многократно повтарящи се препинателни знаци…318