Loading...
aivian avatar aivian 51 Точки

[Judge] PHP Basics - Exam 21 December - Problem {04} Book Store

На първия нулев тест ми излиза това:

 

<div><p>MSXML3: A Comprehensive Guide</p><ul><li>O'Brien, Tim</li><li>Computer</li><li>6.95</li><li>2000-12-01</li><li>The Microsoft MSXML3 parser is covered in detail, with attention to XML DOM interfaces, XSLT processing, SAX and more.</li></ul></div><div><p>Maeve Ascendant</p><ul><li>Corets, Eva</li><li>Fantasy</li><li>6.95</li><li>2000-11-17</li><li>After the collapse of a nanotechnology society in England, the young survivors lay the foundation for a new society.</li></ul></div><div><p>Oberon's Legacy</p><ul><li>Corets, Eva</li><li>Fantasy</li><li>5.00</li><li>2001-03-10</li><li>In post-apocalypse England, the mysterious agent known only as Oberon helps to create a new life for the inhabitants of London. Sequel to Maeve Ascendant.</li></ul></div><div><p>Lover Birds</p><ul><li>Randall, Cynthia</li><li>Romance</li><li>5.95</li><li>2000-09-02</li><li>When Carla meets Paul at an ornithology conference, tempers fly as feathers get ruffled.</li></ul></div>

Your output:
<div><p>MSXML3: A Comprehensive Guide</p><ul><li>O'Brien, Tim</li><li>Computer</li><li>6.95</li><li>2000-12-01</li><li>The Microsoft MSXML3 parser is covered in detail, with attention to XML DOM interfaces, XSLT processing, SAX and more.</li></ul></div><div><p>Maeve Ascendant</p><ul><li>Corets, Eva</li><li>Fantasy</li><li>6.95</li><li>2000-11-17</li><li>After the collapse of a nanotechnology society in England, the young survivors lay the foundation for a new society.
</li></ul></div><div><p>Oberon's Legacy</p><ul><li>Corets, Eva</li><li>Fantasy</li><li>5.00</li><li>2001-03-10</li><li>In post-apocalypse England, the mysterious agent known only as Oberon helps to create a new life for the inhabitants of London. Sequel to Maeve Ascendant.
</li></ul></div><div><p>Lover Birds</p><ul><li>Randall, Cynthia</li><li>Romance</li><li>5.95</li><li>2000-09-02</li><li>When Carla meets Paul at an ornithology conference, tempers fly as feathers get ruffled.
</li></ul></div>

Всичко е точно, само не мога да разбера защо ми чупи аутпута. Пробвах го с друг код и работи както трябва, така че съм сигурен, че е от мен проблема.

Това е моят код:
http://pastebin.com/wzh0TDFC
Тагове:
0
PHP Web Development Basics 13/01/2015 18:35:31
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Трябва да си trim-неш изхода. Дори и да го направиш обаче ще ти минат само нулевия тест + 3 теста. Навсякъде, където довабяш към result го направи:

htmlspecialchars(trim($properties['author']))

Направави го за всички променливи за по-сигурно.

0
13/01/2015 16:23:35
Filkolev avatar Filkolev 4482 Точки

Доколкото виждам имаш някакви нови редове, които не трябва да ги има.

Ползваш explode по "\n", което не е надеждно. За да сплитнеш по нов ред ползвай най-добре preg_split("/\r?\n/", $subject, -1, PREG_SPLIT_NO_EMPTY). 

Също така може за всеки случай да ползваш trim() - в началото, върху целия стринг, който сплитваш, и след това върху всяко парче от него, преди да го запазиш в променлива, която да бутнеш в асоциативния масив.

0
RoYaL avatar RoYaL Trainer 6849 Точки

Щом се чупи аутпутът (появява се цял един нов ред?) по между текста и <li>-то, което отпечатваш, къде мислиш че е проблемът? :) Очевидно не си ескейпнал достатъчно аутпута - някак си са успели да ти вкарат нов ред - предполагам посредством множество спейсове или просто "\n". Пробвай да тримнеш.

 

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

Според мен не винаги е нов ред, а е някакъв whitespace и понеже следващите символи са много на брой, залепени един за друг започват на нов ред. 

0
13/01/2015 16:27:10
RoYaL avatar RoYaL Trainer 6849 Точки

Възможно е, Опитах се да маркирам с мишката за да видя колко спейса са, но направо ме прати на новия ред, може и само един whitespace да е.

0
aivian avatar aivian 51 Точки

Да, с тримване с оправи. Благодаря (bow)

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