Мне надо бы сделать функцию на подобии как в Laravel для работы с формами, что то типа: Код (PHP): function GetTag($tagName, $tagAttributes) { // .... } echo GetTag( 'input', array( 'type' => 'text', 'size' => 50, 'readonly', 'class' => 'myinput' ) ); только вот стоит проблема, теги есть требующие закрытия (div, span, form и т.д.), а если которые не требуют закрытия (input, img и т.д.), может существует какой-нибудь встроенная функция, которая будет давать ответ на этот вопрос? Я конечно сомневаюсь и толком в интернете ни чего не нашел, но мало ли.
А кто не пользуется Laravel, то что вы такое пытаетесь сделать? В Kohana, к примеру, хелперы просто на каждый тег для формы отдельные.
вы такие вопросы задаете конечно.. допустим я передаю TagName а в ответ получаю true если он требует закрытия (например textarea) или false если нет (например input). Конечно можно сказать что я псих (и кто то даже будет прав), т.к. можно взять и самому написать, но самому это надо поддерживать данную функцию, а встроенная это совсем другое дело. http://www.youtube.com/watch?v=nfG7164Gl8o начина я 8:35 а причем тут Laravel, я увидел, мне понравилось, хочу у себя такое сделать, только у них работа только с формами, а мне надо со всеми тегами, есть там кое какая задача.. PS опять же я не говорю что мне нужна именно такая функция, может есть какие то другие, на основе которых можно реализовать подобное, но главное не в ручную перебирать.
ставь всегда закрывающий ) xhtml это допускает Добавлено спустя 5 минут 44 секунды: вот у меня в верстке есть тег <box> допустим. нужен ему закрывающий тег?)
Тегов-то всего ничего. Захардкодь список незакрываемых или закрываемых, и ищи вхождение. Не усложняй простые вещи.
Так я не усложняю, я думал мало ли, может что-то есть, ну или что-то на основе чего можно сделать, все же встроенное лучше чем самописное. ну я смотрел с целью "а как это вообще работает", что бы просто "войти", а там уже все по документации и т.д. Добавлено спустя 1 минуту 30 секунд: ну если его нет в html5 то очень плохо, что он у тебя есть и как я понимаю ему нужен закрывающийся тег.
в том то и прелесть, что html5 разрешает использование своих тегов. можно вводить любые теги или атрибуты этих тегов и для стандартных. а в стилях уже описывать как этот тег будет выглядеть и влиять на страницу. ты вот считаешь ему нужен тег, я считаю что нет. как твоя функция будет это определять? ) никак. следовательно задача утопична. максимум ты можешь написать свою с десятком стандартных тегов которые тебе часто нужны. как сказал Fell-x27. ты бы давно её уже написал, но вместо этого тратишь тут время и ждешь какогото готового универсаьного решения, которого несуществует. это же очевидно
ну не жду я, просто интересуюсь, может существует что-то.. И вообще в отличии от многих меня хлебом не корми дай написать какую-нибудь не нужную хрень Вот например сейчас решил написать небольшой класс для решения этой проблемы viewtopic.php?f=13&t=52782&p=422486 Хотя автор не просил, ни кто мне за это не заплатит, я только потрачу свое время и вообще.. хм.... очень интересно, а как я могу задать эти стили? или под словом стили подразумевается атрибут style="border: 500px;"?
что то я не совсем понимаю, а нахрена мне создавать свои теги, неужели нельзя стандартными обойтись? чем собственные будут лучше стандартных. И что то я слабо представляю как можно в CSS задавать им поведение, вот я создал свой так, с соответственных название xxx, как он себя изначально будет вести как span или как div, а может как link, хрень какая то. А с атрибутами, ладно я понимаю еще для JS можно, что бы хранить в них что то, а как собственные атрибуты будут влиять на CSS. И самое главное как к этому будет относиться http://validator.w3.org/
всё это уже придумали и продумали ) если тебе это интересно - читай доки и спеки. то что ты об этом незнал/недумал - не значит что это хрень. это свобода. семантика. ...
Вопрос только один - зачем все теги заменять на php? Тут наоборот все говорят, что поменьше нужно использовать php в шаблонах....
как это зачем, для удобства, так мне надо писать: Код (PHP): <div class="<?php echo $class; ?>" id="<?php echo $id; ?>"><?php echo $html; ?></div> <?php /* Ну или */ ?> <?php echo "<div class=\"{$class}\" id=\"{$id}\">{$html}</div>"; ?> и проблема в том, что если допустим id то будет id="" а тут допустим: Код (PHP): tag( 'div', [ 'class' => 'myclass', 'id' => 'myid', 'style' => '' ], $html); и при этом если empty('style'), тогда данный атрибут не будет добавляться и еще кучу всего можно прикрутить, как то так. По крайне мере, мне вызов функции писать удобнее чем абру кадабру, что выше. А так все правильно говорят, меньше надо РНР в шаблонах, особенно всяких шаблонизаторов и шорт тегов. Я как раз и делаю для уменьшения РНР Добавлено спустя 2 минуты 5 секунд: Кстати, такой не скромный вопрос, а как по научному называются эти теги, ординарные и двойные? или требующие и не требующие закрытия?
В php уже давно можно писать Код (Text): <div class='<?= $class; ?>'> Начиная с php 5.4 это не требует включённых short_tags
Можно и так писать Код (PHP): <?= tag('div', ['class'=>$class]); ?> мне что не нравится это то, что каждый раз надо открывать РНР теги, пусти и короткие, но все же, код превращается прямо в какой то wordpress тем более я же не планирую все заменять, только там где надо что то динамическое. т.е. если вы думаете что я задумал что то вроде: Код (PHP): <!doctype html> <html> <head> <?= get('meta', ['charset' => 'utf-8']); ?> <?= get('title', [], 'PAGE'); ?> </head> <body> <?= get('div', ['class' => 'a', 'id' => 'b'], $message); ?> </body> </html> то вы ошибаетесь