30 ігрових скриптів, які можна написати на мові PHP: Частина 3. Створення 10 скриптів підвищеної складності

  1. Серія контенту:
  2. Цей контент є частиною серії: 30 ігрових скриптів, які можна написати на мові PHP
  3. Базова система управління запасами
  4. Лістинг 1. Додавання деяких базових функцій для управління запасами
  5. Простий скрипт для ведення ігрових заміток
  6. Лістинг 2. Скрипт, що спрощує збереження і перебування ігрових заміток
  7. Генератор посвідчення особи
  8. Малюнок 1. Приклад бланка посвідчення особи
  9. Малюнок 2. Приклад заповненого бланку посвідчення особи
  10. Генератор карт на базі тайлів
  11. Малюнок 3. Базові типи ландшафту
  12. Лістинг 3. Масив тайлів карти
  13. «Оцінювач рук» в покері
  14. Слот-машина
  15. Лістинг 4. Завдання картинок для барабана
  16. Лістинг 5. Виграшні результати і виплати
  17. Лістинг 6. Налаштування барабанів
  18. Лістинг 7. Результати в змінній $ payouts
  19. гра Кено
  20. Лістинг 8. Масив чисел від 1 до 80
  21. Помічник для розгадування криптограми
  22. Лістинг 9. Підрахунок букв в незашифрованому тексті і сортування результатів в масиві
  23. гра Mastermind
  24. Лістинг 10. Масив з шести кілочків різного кольору
  25. Лістинг 11. Аналіз припущень
  26. ланцюжки слів
  27. Лістинг 12. Генерація ланцюжків слів з окремого слова
  28. Висновок
  29. Ресурси для скачування

30 ігрових скриптів, які можна написати на мові PHP

Серія контенту:

Цей контент є частиною # з серії # статей: 30 ігрових скриптів, які можна написати на мові PHP

https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=30+игровых+скриптов,+которые+можно+написать+на+языке+php

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: 30 ігрових скриптів, які можна написати на мові PHP

Слідкуйте за виходом нових статей цієї серії.

У цій статті ми побудуємо скрипти для системи управління запасами і для ведення заміток в рольових іграх, а також займаємося підвищенням інтерактивності наших PHP-скриптів. Ми також побудуємо заснований на роботі з зображеннями генератор посвідчень особи і докладніше ознайомимося з тим, як маніпулювати зображеннями за допомогою PHP. Ми створимо «оцінювача рук» при грі в покер і генератор для слот-машини, що дозволить вам попрактикуватися з трохи більш складною PHP-логікою. Ми збільшимо складність наших скриптів для ігор зі словами - ми будемо працювати з більш складною логікою, будувати складні генератори анаграм, дешифровщики і т.д.

Ці скрипти дещо складніше, ніж скрипти з першій частині і другій частині , Оскільки вони вирішують істотно більш складні завдання. Доданий до даної статті архів програмного коду (далі - Архів ) Містить повний вихідний текст для кожного описуваного в ній скрипта. Крім того, ви зможете побачити ці скрипти «в дії» на Web-сайті: http://chaoticneutral.net/3d10 (EN).

Як і в першій частині і в другій частині, ми «пробіжимося» по цим скриптам досить швидко. Якщо ви до цих пір не прочитали 1-ю і 2-ю матеріали цієї серії, то вам слід це зробити до початку роботи з цією статтею.

Базова система управління запасами

Свого часу ми створили скрипт для управління статистичною інформацією персонажів. Вдосконалюємо цей скрипт і додамо до нього деякі базові функції для управління запасами. За допомогою цього скрипта ми будемо відстежувати витрачені боєприпаси, спалені смолоскипи і знайдені об'єкти (лістинг 1). Замість того щоб заздалегідь передбачити розміщення всіх об'єктів, які гравець потенційно здатний знайти, ми створюємо два поля введення - одне для назви об'єкта, друге - для числа примірників цього об'єкта: <input name = 'newitem' /> <input name = 'newcount' />. Після того як цей скрипт буде готовий, ми зможемо додавати нові об'єкти в інвентаризаційний масив і зберігати цей масив разом з характеристиками персонажа. Потім пройдемо по інвентаризаційної масиву і створимо нові поля введення, в яких будуть міститися об'єкти.

Лістинг 1. Додавання деяких базових функцій для управління запасами

foreach ($ character [ 'inventory'] as $ name => $ count) {echo $ name. ": <Input name = 'inventory [". $ Name. "] 'Value ='". $ Count. " '/> <br />"; }

За допомогою подібної структуризації вхідних імен PHP автоматично створює масив «запасів», заповнений парами назва-значення. З повним текстом цього скрипта можна ознайомитися в Архіві.

Простий скрипт для ведення ігрових заміток

За участю в RPG-грі певну користь гравцеві може принести фіксація тих чи інших заміток. Однак користі від таких заміток буде небагато, якщо гравець не зможе знайти, де він записав важливі моменти. Створимо скрипт, що допомагає зберігати і знаходити ігрові замітки.

Щоб створити нотатку потрібно всього два поля: <input name = 'title' /> <br /> <textarea name = 'body'> <br />.

Як і у випадку зі сторінкою персонажа, замітки додаються до масиву, перетворюються в послідовну форму (серіалізуются) і зберігаються в текстовому файлі. У процесі збереження замітки проводиться аналіз слів. Отримана кількість слів також зберігається в тому ж текстовому файлі. Для спрощення процесу замінимо всі символи, які не є буквами або числами, а також переведемо всю замітку в нижній регістр (виключно з метою аналізу): $ analyze = preg_replace ( '/ [^ 0-9a-z \ s] /', strtolower ( $ _POST [ 'body'])) ;. Потім розіб'ємо замітку по прогалин і перемістимо ідентифікатор замітки в масив підрахунку слів для кожного слова (лістинг 2).

Лістинг 2. Скрипт, що спрощує збереження і перебування ігрових заміток

$ Noteid = count ($ masternotes); $ Masternotes [] = array ( 'title' => htmlentities ($ _ POST [ 'title']), 'body' => htmlentities ($ _ POST [ 'body'])); $ Words = preg_split ( '/ \ s /', $ note [ 'body']. ''. $ Note [ 'title']); foreach ($ words as $ word) {$ word = preg_replace ( '/ [^ 0-9a-z] /', '', strtolower ($ word)); if (! in_array ($ word, $ ignore_these_words)) {if (isset ($ counts [$ word])) {$ counts [$ word] [$ noteid] = $ noteid; } Else {$ counts [$ word] = array ($ noteid => $ noteid); }}}

Щоб побачити, як здійснюється витяг окремих заміток або пошук замітки за ключовими словами, скористайтеся тестовим скриптом або зверніться до архіву .

Генератор посвідчення особи

Якщо ви граєте в сучасні ігри, то за допомогою фізичного посвідчення особи для вашого персонажа ви зможете справити сильне враження на своїх друзів і привнести в гру відчуття реалізму. Ми збираємося скомпонувати PHP-код для маніпулювання зображеннями, який дозволить нам створити зображення посвідчення особи, готове до подальшого ламінування. Для початку нам потрібно якесь базове зображення, яке ми смоли б використовувати в якості бланка для створюваного посвідчення особи. Ми будемо використовувати наступну заготовку для бланка посвідчення особи, яку я створив для нашого прикладу (рисунок 1).

Малюнок 1. Приклад бланка посвідчення особи
30 ігрових скриптів, які можна написати на мові PHP   Серія контенту:   Цей контент є частиною # з серії # статей: 30 ігрових скриптів, які можна написати на мові PHP   https://www

Нам потрібна базова форма для угруповання всіх полів посвідчення особи (ім'я, допуск, місце проживання, дата народження, колір волосся, колір очей). Потім ми повинні розмістити ці значення як рядка на зображенні. Щоб визначити належні місця для початку і закінчення тексту для деяких значень потрібно неодноразове застосування методу проб і помилок: imagettftext ($ img, 40, 0, 600, 200, 0, "tarzeau _-_ OCR-A", $ _POST [ 'name'] ) ;. Якщо ви все зробили правильно, то після заповнення бланка у вас вийшло приблизно наступне (малюнок 2).

Малюнок 2. Приклад заповненого бланку посвідчення особи

Відповідний шрифт включений в Архів; вихідне зображення має дозвіл 300 точок на дюйм. На деяких системах отримання потрібного шрифту і створення посвідчення особи може виявитися непростою справою, однак вихідний код в Архіві скрипта дозволяє успішно вирішити ці проблеми.

Генератор карт на базі тайлів

У ранніх комп'ютерних іграх для створення ігрових карт використовувалися так звані «тайли» (tile). Цей же базовий підхід на основі тайлів як і раніше використовується сьогодні в деяких випадках. Давайте створимо скрипт для генерації базової карти. Ця карта буде не дуже великий, проте ми зможемо використовувати ті ж самі принципи для створення карт набагато більшого розміру, причому, зі змінною деталізацією. Для початку створимо кілька різних типів ландшафту і відповідних їм елементарних тайлів, кожен з яких представлятиме свій тип ландшафту (рисунок 3).

Малюнок 3. Базові типи ландшафту

Тепер, коли у нас є базові типи ландшафту, нескладно здогадатися, що ми будемо робити далі: ми створимо масив тайлів для кожного ряду. Однак ми не отримаємо хороших результатів, якщо будемо вибирати (і заносити в масиви) типи ландшафту випадковим чином.

Ми будемо створювати карту з 20 тайлів. При прийнятті рішення про вибір типу ландшафту для поточного тайла слід враховувати сусідні тайли. Подивіться на чотири найближчих відомих тайла: на останній тайл в поточному ряду і на три тайла безпосередньо над поточним Тайлі. Ми можемо встановити складні правила для управління генерацією ландшафту, але для початку ми зробимо простіше. Перш ніж вибирати типи ландшафту за випадковим законом, ми будемо додавати до масиву типи ландшафту чотирьох найближчих тайлів. Чим більшу кількість разів ми додамо попередні типи ландшафту, тим з більшою ймовірністю ми отримаємо гомогенні області. Результат показаний в лістингу 3.

Лістинг 3. Масив тайлів карти

$ Map = array (); $ Terrain = array ( 'plains', 'forest', 'swamp', 'hills', 'mountain', 'water'); for ($ row = 0; $ row <20; $ row ++) {$ map [] = array (); for ($ column = 0; $ column <20; $ column ++) {$ pool = $ terrain; if (isset ($ map [$ row-1])) {if (isset ($ map [$ row-1] [$ column-1])) {$ pool [] = $ map [$ row-1] [ $ column-1]; $ Pool [] = $ map [$ row-1] [$ column-1]; } $ Pool [] = $ map [$ row-1] [$ column]; $ Pool [] = $ map [$ row-1] [$ column]; if (isset ($ map [$ row-1] [$ column + 1])) {$ pool [] = $ map [$ row-1] [$ column + 1]; $ Pool [] = $ map [$ row-1] [$ column + 1]; }} If (isset ($ map [$ row] [$ column-1])) {$ pool [] = $ map [$ row] [$ column-1]; $ Pool [] = $ map [$ row] [$ column-1]; } Shuffle ($ pool); $ Map [$ row] [$ column] = $ pool [0]; }}

Маючи в своєму розпорядженні масивом карти, ми будемо здійснювати ітерації по кожному ряду і кожному колонку цього масиву, заповнюючи його ландшафтом відповідного типу. Спробуйте тестовий скрипт, щоб побачити, які види карт він здатний генерувати. Його можливості буквально безмежні. Ми можемо привласнювати окремими типами ландшафту різні ваги для варіювання частоти їх появи, створювати більш складні правила щодо допустимих сусідів для різних типів ландшафту і т. Д. Не бійтеся експериментувати.

«Оцінювач рук» в покері

Ми вже написали дилера для гри в покер і дилера для гри в Блекджек. Зробимо черговий крок вперед і напишемо «оцінювача рук» при грі в покер. Це більш складна задача, оскільки робота по ранжирування рук з аналогічними комбінаціями може зажадати значного часу. Однак її можна істотно спростити, якщо доручити скрипту подивитися на п'ять карт в руці і повідомити нам про наявні комбінаціях ( «стріт», «флеш» і т.д.).

При розгляді карт на руці застосовуються такі прості правила.

  1. Якщо масть поточної карти не збігається з мастю попередньої карти, то немає комбінації «флеш».
  2. Якщо картинка будь-якої карти збігається з картинкою будь-якої попередньої карти, то немає комбінації «стріт».
  3. Якщо ніякі карти не збігаються і якщо $ highcard мінус $ lowcard точно дорівнює п'яти, то має місце комбінація «стріт»

Після реалізації цих простих правил застосуєте таку просту процедуру для виявлення збігів.

  1. Якщо всі п'ять карт мають різні номінали, то будь-які комбінації відсутні.
  2. Якщо на руці є тільки чотири різних номіналу, то присутній одна комбінація «пара».
  3. Якщо є тільки три різних номіналу, то присутні дві комбінації «пара» або одна комбінація «трійка».
  4. Якщо є тільки два різних номіналу, то присутній комбінація «фул-хаус» або «каре».
  5. Якщо всі п'ять карт мають один номінал, значить, ви шулер.

У Архів включений типовий скрипт, в якому реалізовані всі ці правила.

Слот-машина

Сучасні слот-машини - це складні агрегати з відеоекранами, з декількома лініями виграшу (payline), з великою кількістю кнопок і з меншою кількістю важелів, за які потрібно тягнути. У цьому прикладі ми моделюємо просту слот-машину з трьома барабанами і з однією лінією виграшу. Для початку визначте, які картинки знаходяться на барабані (лістинг 4).

Лістинг 4. Завдання картинок для барабана

$ Faces = array ( 'Cherry', 'Bar', 'Double Bar', 'Triple Bar', 'Diamond', 'Seven');

Потім задайте правила визначення виграшного результату. Ці правила можуть бути самими різними. В даному прикладі виграшний результат - це три однакових картинки на лінії виграшу. Нам необхідно налаштувати певну відповідність між виграшним результатом і виплатою. Можливий варіант рішення приведений в лістингу 5.

Лістинг 5. Виграшні результати і виплати

$ Payouts = array ( 'Bar | Bar | Bar' => '5', 'Double Bar | Double Bar | Double Bar' => '10', 'Triple Bar | Triple Bar | Triple Bar' => '15', 'Cherry | Cherry | Cherry' => '20', 'Seven | Seven | Seven' => '70', 'Diamond | Diamond | Diamond' => '100',);

При повороті барабанів перший і третій барабани обертаються в одному напрямку, а другий барабан - в протилежному напрямку. Налаштуємо наші барабани з урахуванням цієї обставини (лістинг 6).

Лістинг 6. Налаштування барабанів

$ Wheel1 = array (); foreach ($ faces as $ face) {$ wheel1 [] = $ face; } $ Wheel2 = array_reverse ($ wheel1); $ Wheel3 = $ wheel1;

Для настройки барабана 2 ($ wheel2) ми змінили порядок масиву на зворотний. Ми хочемо відстежувати положення барабанів від гри до гри. Інша частина цієї вправи досить проста. Кожен барабан повинен зробити не менше одного і не більше 10 обертів. Для моделювання обертання барабана скористаємося операцією «взяття по модулю»: $ result1 = $ wheel1 [rand (count ($ wheel1), 10 * count ($ wheel1))% count ($ wheel1)] ;. Результат буде перебувати в змінній $ payouts (лістинг 7).

Лістинг 7. Результати в змінній $ payouts

if (isset ($ payouts [$ result1. '|'. $ result2. '|'. $ result3])) {// give the payout}

Примітка. Ми свідомо розглянули максимально спрощену ситуацію. Реальні слот-машини набагато складніше і використовують досить заплутані процедури виплат. Даний скрипт - це всього лише навчальний вправу. Попрацюйте з кодом скрипта з Архіву і спробуйте дещо ускладнити механізм виплати.

гра Кено

Гра Кено (Keno) представляє щось середнє між лото і лотерей. Двадцять чисел в діапазоні від 1 до 80 випадають за випадковим законом, а гравець робить ставку на те, які номери випадуть (він може вибрати до 15 чисел). Виплати в Кено змінюються в широких межах, проте, настройка скрипта для моделювання гри в Кено досить проста, тим більше, що ми вже робили дуже схожі речі. Для початку створимо масив чисел від 1 до 80 (лістинг 8).

Лістинг 8. Масив чисел від 1 до 80

$ Balls = array (); for ($ i = 1; $ i <= 80; $ i ++) {$ balls [] = $ i; } Shuffle ($ balls);

Вводите в єдине текстове поле свої припущення, розділені комами. Потім просто витягніть 20 чисел з масиву $ balls і перевірте свої припущення на відповідність цим числам. Реалізація не повинна викликати будь-яких ускладнень. Відповідний скрипт наведено в архіві . Цей скрипт можна вдосконалити за допомогою демонстрації випали номерів на дошці в стилі Кено. Спробуйте зробити це самі, коли ознайомлення з цим скриптом.

Помічник для розгадування криптограми

Crypto - гра, яка досить часто зустрічається в газетах. Її мета полягає в тому, щоб розшифрувати задану фразу, яка була зашифрована з використанням підстановлювальний шифру (подібного до того, який ми розшифровували в частини 2 ). Давайте напишемо скрипт, який буде використовувати найпростіший частотний аналіз для розшифровки зашифрованого повідомлення. Ми могли б використовувати той же самий підхід і при грі в Crypto.

Частотний аналіз - це не більше ніж наукообразное назву для звичайного підрахунку букв. Візьміть зразок незашифрованого тексту, підрахуйте, скільки разів певні літери з'являються в цьому тексті, і відсортуйте ці літери по порядку - від найчастіших до найрідкісніших. Потім виконайте цю ж операцію для зашифрованого тексту. Після цього помістіть два списки букв поруч один з одним. Це дозволить вам висувати розумні припущення про ключах розшифровки. Цей метод найкраще працює з великими фрагментами тексту, проте може виявитися корисним і в разі більш коротких фрагментів. Почніть з двох текстових вікон: одне для незашифрованого тексту, друге - для зашифрованого тексту гри Crypto. Підрахуйте букви в незашифрованому тексті і відсортуйте результати в масиві (лістинг 9).

Лістинг 9. Підрахунок букв в незашифрованому тексті і сортування результатів в масиві

$ Unencoded = str_split (preg_replace ( '/ [^ az] /', '', strtolower ($ _ POST [ 'unencoded']))); foreach ($ unencoded as $ letter) {$ lettercount [$ letter] ++; } Arsort ($ lettercount);

Потім виконайте те ж саме з зашифрованим текстом. Після того як ми відсортували масив по частоті букв, створимо карту букв і використовуємо її в своїх спробах розшифровки тексту. Якщо ви будете особливо щасливі, то розшифруєте текст з першого разу, проте на це не слід розраховувати. Найбільш імовірним результатом буде частково розшифрований текст - це хороша відправна точка для вирішення головоломки. Для отримання додаткових подробиць зверніться до зразком цього скрипта. Для поліпшення цього скрипта існує безліч можливостей.

гра Mastermind

Mastermind - це настільна гра (заснована на ще більш старої грі), в якій гравець повинен розгадати послідовність кольорових штирьків, загадане ведучим. У цій версії виконувати функції ведучого буде скрипт, а вам доручається робити припущення. Скрипт буде говорити вам, скільки разів ви вгадали колір, але не вгадали положення, і скільки з ваших припущень виявилися повністю правильними. У грі Mastermind використовуються кілочки шести різних кольорів; кольори можуть повторюватися. Почніть з написання наступного коду (лістинг 10).

Лістинг 10. Масив з шести кілочків різного кольору

$ Pegs = array ( 'R', 'O', 'Y', 'G', 'B', 'V'); $ Code = array (); for ($ i = 0; $ i <4; $ i ++) {$ code [] = $ pegs [rand (0,5)]; }

Тепер нам необхідний механізм для аналізу припущень (лістинг 11). Здогадки вводяться в єдине текстове поле, наприклад, в такому вигляді OOGBVR.

Лістинг 11. Аналіз припущень

$ Guess = str_split ($ _ POST [ 'guess']); if ($ guess == $ code) {// the code has been guessed. } Else {for ($ i = 0; $ i <4; $ i ++) {if ($ guess [$ i] == $ code [$ i]) {// A correct guess} else {// Keep track of the guessed colors, for output later}}}

Ознайомтеся з повним текстом відповідного типового скрипта. Це невелика кумедна гра, яку ви зможете модифікувати різними способами.

ланцюжки слів

Ймовірно, ви Вже Граля в гру, де нужно взяти будь-яке слово и Изменить Всього одну букву для превращение его в інше слово. Зазвічай мета цієї гри Полягає в перетворенні одного слова в інше слово, например, превратить слово BIKE в слово FATE з Використання такой ланцюжки слів: BIKE, LIKE, LAKE, LATE, FATE. Створімо скрипт, Який буде генеруваті ланцюжки слів з окремим слова. Вікорістовуємо для цього фрагмент коду, Який ми Ранее создали для помічника в розгадуванні кросвордів (лістінг 12). Взявши окреме слово, наприклад, BIKE, ми можемо створити чотири слова з пропущеними буквами (.IKE, B.KE, BI.E і BIK.), Які потім можна передати помічнику по кросвордам для знаходження можливих збігів.

Лістинг 12. Генерація ланцюжків слів з окремого слова

$ Letters = str_split ($ link); foreach ($ letters as $ key => $ letter) {foreach ($ words as $ word) {if ($ key == 0) {$ guess = '.' . substr ($ link, 1); } Else if ($ key + 1 == count ($ letters)) {$ guess = substr ($ link, 0, $ key). '.'; } Else {$ guess = substr ($ link, 0, $ key). '.' . substr ($ link, $ key + 1); } If (preg_match ( "/ ^". $ Guess. "$ /", $ Word)) {$ matches [] = $ word; }}}

Як тільки збіг буде знайдено, виконаємо цю ж операцію з поєднаним словом (впевнившись у відсутності дублікатів). Продовжуйте застосовувати цю логіку до тих пір, поки зможете знаходити збіги. Ми навіть можемо реалізувати розгалуження рішень для кожного можливого збігу. Це було б дуже корисним вправою по поводженню з неконтрольованою рекурсією. Спробуйте зробити це, коли ознайомлення з відповідним типовим скриптом.

Висновок

Я сподіваюся, що ця серія « 30 ігрових скриптів, які можна написати на PHP »Допоможе вам у створенні на мові PHP цікавих скриптів для різних ігор. Незалежно від того, наскільки ви самі любите грати в ігри, за допомогою простих утиліт, представлених в цій серії, ви зможете істотно збагатити свої ігрові можливості. Мова PHP - це прекрасний вибір для вирішення таких завдань. Якщо ви ретельно дотримувалися всіх рекомендацій цієї серії, то, поза всяким сумнівом, ви істотно поліпшили свої навички програмування на PHP і отримали задоволення.

Ресурси для скачування

Схожі тими

  • Оригінал статті: 30 game scripts you can write in PHP, Part 3: Creating 10 advanced scripts (EN).
  • ™ Прочитайте першу статтю в серії на ресурсі developerWorks: " 30 ігрових скриптів, які можна написати на мові PHP. Частина 1. Створення 10 скриптів базового рівня .
  • ™ Переходьте на наступний рівень складності - це забезпечить подальший розвиток ваших навичок програмування на PHP і підвищить ваш статус в якості гейммастера. Друга стаття серії «30 ігрових скриптів, які можна написати на мові PHP. Частина 2. Розробка 10 скриптів середньої складності ».
  • ™ Спробуйте діючі приклади (EN) всіх скриптів.
  • ™ Бібліотека Open Font Library (EN): джерело шрифтів OCR-A, які застосовуються в принтерах ідентифікаційних карт (є й інші шрифти).
  • ™ Базові відомості про ігрових автоматах (EN).
  • ™ Додаткова інформація про гру Keno (EN).
  • ™ Ресурс Cryptograms.org (EN) містить безліч криптограми - набагато більше, ніж вам може знадобитися.
  • ™ Прочитайте статтю " Apache 2 and PHP 5 (mod_php) on Linux "(EN), в якій описується, як отримати дистрибутиви Apache V2 і PHP V4.x (підтримується використання PHP V5.x), спільно працюють в середовищі Linux.
  • ™ У статті « Підключення PHP-додатків до сервера Apache Derby »(EN) показано, як встановити та налаштувати PHP в середовищі Windows (деякі кроки застосовні і до середовища Linux).
  • ™ Прочитайте статтю " Learning PHP, Part 1 (Вивчення PHP, частина 1), в якій викладаються базові відомості по PHP. потім прочитайте Частина 2 , Щоб дізнатися, як завантажити файли на локальні хости за допомогою DOM і SAX. У завершальній цю серію частини 3 описується потокове додаток.
  • ™ Зверніться до документа Керівництво по PHP (EN), щоб дізнатися більше про об'єкти даних в PHP і про їхні можливості.
  • PHP.net (EN): центральний ресурс для PHP-розробників.
  • ™ Ознайомтеся зі " списком рекомендованої літератури по PHP "(EN).
  • ™ Перегляньте всі матеріали по PHP (EN) на ресурсі developerWorks.
  • ™ Для вдосконалення навичок програмування на PHP рекомендуємо відвідати розділ ресурсу IBM developerWorks під назвою Ресурси проекту PHP (EN).
  • ™ Прослухайте цікаві інтерв'ю та дискусії для розробників ПЗ: подкасти ресурсу developerWorks (EN).
  • використовуєте базу даних з PHP? Ознайомтеся з продуктом Zend Core for IBM (EN) - це проста в установці і застосуванні, готова до використання середовище для розробки і експлуатації додатків на мові PHP, що підтримує IBM DB2 V9.
  • ™ Відвідайте розділ Web-сайту developerWorks, присвячений продуктам з відкритим кодом - до ваших послуг великий асортимент довідкової інформації, інструментів і оновлень, який допоможе здійснювати розробки на основі технологій з відкритим кодом і використовувати їх разом з продуктами IBM.
  • ™ Вдосконалить свій наступний проект з відкритим кодом за допомогою ознайомлювальних версій програмних продуктів IBM (EN), які можна завантажити з Інтернету або отримати на DVD-диску.
  • ™ Завантажте ознайомчі версії програмних продуктів IBM (EN) і придбайте досвід роботи з інструментами розробки додатків і продуктами сполучного рівня сімейств DB2®, Lotus®, Rational®, Tivoli® і WebSphere®.

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Jsp?
? використовуєте базу даних з PHP?