Loading...
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

[Homework] PHP Basics - Arrays, Strings, Objects - November 2014

Здравейте, колеги! Виждам, че към php курса имате голям интерес и решавате задачите доста рано. Преди да са ни дали домашните даже... :D Явно причината е натрупаният опит от предишните курсове. Най-интересните задачи до сега са от тази лекция (според мен) и с удоволствие ги реших. Нека ги изкоментираме. :)

GitHub

Условията са малко улеснени, но пак си иска доста мислене. Примерно задачата да преобразуваме html линк във форумен такъв си е лесна, понеже <a> таговете по условие са добре форматирани и без излишни неща. Не ми се мисли какво щях да правя, ако трябваше да преобразуваме нещо от сорта на

<a    href=  link" id='ss'></a>

:D

Тагове:
2
PHP Web Development Basics
a.angelov avatar a.angelov 1316 Точки

Ето и моите решения:

GITHUB

Най-интересна ми беше задачата със звездичка - Seminar Generator smile

ПС. Причината да избързвам с решаването на домашните е за да остане повечко време за проекта и изпитните задачи ;) И между другото - NetBeans е съвсем не лошо IDE... За php пробвах и Eclipse/Aptana и PHP Storm и май най-безпроблемна се оказа работата ми с NetBeans.

1
05/12/2014 22:05:55
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Много стилни решения. Бива те с regex-ите! Браво! И не инициализирай масивите с array(), а с []! :D

1
a.angelov avatar a.angelov 1316 Точки

Благодаря за regex-ите - постепенно започва да ми просветлява как да работя с тях, но има още доста какво да се желае smile. Специално за регекса на 06-URLReplacer си помогнах с ТОЗИ от нета, който преправих за моите нужди, с доста пълно обяснение е кое какво е и е полезно да се разгледа /дори и да не се ползва/ smile

Хм..., за инициализацията на празен масив, не видях някъде да е казано, че не трябва/не може да се ползва array()... Има ли причина да не се прави така?

Между другото - за сортиране на асоциативни/многомерни масиви има една много хубава функция /която използвам в 07-Seminar Generator/ array_multisort() /по-конкретно разгледайте Example #3 Sorting database results/.

1
06/12/2014 00:13:03
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Бях я виждал тази функция, но кой да се сети...

По-добре е да ползваш [] (новият синтаксис), защото старият е просто функция. Извикването на функция е бавна операция, колкото и да звучи глупаво. Просто оптимизация, иначе не е проблем. Същото важи и за javascript. Докато можеш да оптимираш кода, защо да не го правиш? :P

Благодаря за линка! Доста добре е обяснено. :)

1
05/12/2014 23:54:20
RosenKrumov avatar RosenKrumov 203 Точки

Ето и моето домашно. Колко време се чудих защо не ми работи replace на 6-та преди да се сетя, че не трябва да escape-вам inputa :D. 

Github

1
RoYaL avatar RoYaL Trainer 6849 Точки

За ТекстФилтъра, може би искаш да пробваш str_repeat() вместо да конканетираш стринг :)

P.S.: Ултра лоша практика е да променяш какво има в суперглобалните, както в случая $_POST['text'] ... :)

Това ще се отрази от там нататък навсякъде в кода и трябва да си магьосник, за да си запомнил след 5 месеца в един по-голям апп, че си мутирал суперглобалната. Да не говорим, ако сте отбор от няколко програмиста :)

 

2
08/12/2014 14:03:22
RosenKrumov avatar RosenKrumov 203 Точки

Като цяло винаги си ги запазвам в променливи суперглобалните, не знам защо тук не съм го направил, но и не знаех, че е толкова голям проблем като цяло. Добре, ще го взема под внимание за напред. И този str_repeat()... Искам да видя колко още функции ще намеря в РНР, които да own-ват "цивилизованите" езици. Благодарско :)

1
RoYaL avatar RoYaL Trainer 6849 Точки

Beware :) РНР наистина има много функции, за които човек не си е и мечтал. Но трябва да бъдат използвани. Някои трябва да бъдат научени и никога да не бъдат ползвани. Нека ти покажа една функция, която ще ти се стори много интересна, но ще ти препоръчам да ми се довериш сляпо и никога да не я ползваш :) extract()

"Цивилизованите" езици обикновено вървят върху някаква рамка (e.g. .NET framework), която по дефиниция те спира да се застреляш в крака, като не ти рпедоставя подобни функции. Аз съм привърженик на свободата :) Все пак човек като е програмист, знае какво прави и знае кога да ползва нещо или да не го.

Ох, много се отплеснах, извинявай :)

2
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Здравейте, колеги,

След като явно сте изрешили всичко до JS Applications :) се надявам да успеете да ми помогнете.
Работя над пета задача Sentence Extractor. Присвоявам стойностите по следния начин:

mb_internal_encoding("utf-8");
header('Content-Type: text/html; charset=utf-8');

$text = htmlspecialchars($_GET['text']);
$word = htmlspecialchars($_GET['word']);

 

Задачата работи, но специално с примера от домашното гърми. Причината е, че – и ’ са уникодски символи. Порато което text изобщо не приема стойност, остава празно. Гледах в лекцията на Наков, че уникод си е голям проблем. Но така и не разбрах как да се оправя. Мерси предварително!

0
08/12/2014 22:19:33
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

'Порато което text изобщо не приема стойност, остава празно' - едва ли проблема идва от unicode-то... Най-добре дай целия код, че да се види логиката ти. И htmlspecialchars се ползва само при принтиране, не при присвояване.

0
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Ами като махна тези два символа, работи. Иначе ето кода:

http://pastebin.com/cmegS92s


http://pastebin.com/fv4nCbNh

0
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Пробвах какви ли не неща - работи коректно. По принцип проблемите в unicode се изразяват с грешно изрисувани символи, не с липсата на такива. Може някой друг да види проблема, аз не виждам такъв. :)

0
VenelinGrozev avatar VenelinGrozev 130 Точки

Айде и аз да се запиша с едно домашно този курс - Git - Arrays, Strings, Objects

Само внимателно, че сега излиза от фурната и още пари laughing

1
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Добре изпечени задачи, колега! Само се старай да принтираш по-малко html код с echo. :P

0
VenelinGrozev avatar VenelinGrozev 130 Точки

Това не го разбрах за по-малкото принтиране с echo. Има ли други начини да генерираш динамично html от php понеже аз само този знам?

1
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки
echo "<table>";
foreach ($wordCount as $key => $value) {
echo "<tr><td>" . htmlspecialchars($key) . "</td><td>" . htmlspecialchars($value) . "</td></tr>";
}
echo "</table>";

Ще стане на

<?php
...
?>
<table>
<?php foreach ($wordCount as $key => $value) : ?>
<tr>
<td>
<?=htmlspecialchars($key)?>
</td>
<td>
<?=htmlspecialchars($value)?>
</td>
</tr>
<?php endforeach; ?>
</table>
...
1
09/12/2014 10:52:47
JuliaS avatar JuliaS 32 Точки

Здравейте,

ето и моите решения github

На 5 задача Sentence Extractor така и не успях да извадя като резултат ако "is" е в началото на думата...То принципно изречение няма и как да започва с малка буква, но все пак не успях да го хвана като възможен вариант. Регулярният ми израз е съвсем простичък, идеи как мога да го променя за да ми хваща и търсената думичка и в началото?

1
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки
$wordPattern = "/\b$word\b/i";

 

Така май работи коректно!

1
09/12/2014 22:44:13
JuliaS avatar JuliaS 32 Точки

Да така работи, благодаря. Пробвах с начало и край на думата, но явно съм объркала нещо по чертичките. Видях че си ползвал /i - какво означава, защото израза си работи и без него. Спомням си че за Javascript трябваше да упоменаваме дали търсенето да е глобално или някакъв друг параметър, но при PHP?!?

1
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

Това означава case-insensitive search. :)

За други такива параметри не съм сигурен, за /g (глобално търсене) май не работи, понеже имаме preg_match и preg_match_all.

1
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Ето и моите решения (включително и задачата с *):

GITHUB

DEMOS

На 3-та задача реших да направя полетата незадължителни и да прави категории само от тези полета, в които има попълнена информация.

На 6-та задача използвах дълъг regex, за да мога да хвана всякакви варианти на а тага.

На 7-ма задача направих ако няма нито 1 валиден семинар въведен в текстовото поле да изписва Invalid entry.

2
12/12/2014 03:21:29
Andreev avatar Andreev 11 Точки

Това са моите решения => GitHub 

Ще се радвам да получа някаква обратна връзка.

1
lmarkov avatar lmarkov 7 Точки

Ето и моето домашно.

GitHub

2
velio84 avatar velio84 241 Точки

Ето ги и моите решения

Това ми беше най-приятното домашно за решаване в php курса. Предполагам, щото му посвикнах на езика, дотук той ми беше най-труден за аклиматизация :)

 

2
Filkolev avatar Filkolev 4482 Точки

Стигнах и аз да го направя това домашно - ЛИНК.

Всякаква обратна връзка е добре дошла.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.