За последние 24 часа нас посетили 16134 программиста и 1666 роботов. Сейчас ищут 896 программистов ...

Узнать что за тег средствами PHP

Тема в разделе "PHP для новичков", создана пользователем VLK, 15 апр 2015.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Мне надо бы сделать функцию на подобии как в Laravel для работы с формами, что то типа:
    Код (PHP):
    1. function GetTag($tagName, $tagAttributes)
    2. {
    3. // ....
    4. }
    5. echo GetTag( 'input', array( 'type' => 'text', 'size' => 50, 'readonly', 'class' => 'myinput' ) ); 
    только вот стоит проблема, теги есть требующие закрытия (div, span, form и т.д.), а если которые не требуют закрытия (input, img и т.д.), может существует какой-нибудь встроенная функция, которая будет давать ответ на этот вопрос?
    Я конечно сомневаюсь и толком в интернете ни чего не нашел, но мало ли.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А кто не пользуется Laravel, то что вы такое пытаетесь сделать? В Kohana, к примеру, хелперы просто на каждый тег для формы отдельные.
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А чего за функции такие в ларавель?
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    на какой вопрос то? ставить закрывающий тег или нет? )))
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    вы такие вопросы задаете конечно.. допустим я передаю TagName а в ответ получаю true если он требует закрытия (например textarea) или false если нет (например input).
    Конечно можно сказать что я псих (и кто то даже будет прав), т.к. можно взять и самому написать, но самому это надо поддерживать данную функцию, а встроенная это совсем другое дело.


    http://www.youtube.com/watch?v=nfG7164Gl8o начина я 8:35

    а причем тут Laravel, я увидел, мне понравилось, хочу у себя такое сделать, только у них работа только с формами, а мне надо со всеми тегами, есть там кое какая задача..

    PS опять же я не говорю что мне нужна именно такая функция, может есть какие то другие, на основе которых можно реализовать подобное, но главное не в ручную перебирать.
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ставь всегда закрывающий ) xhtml это допускает

    Добавлено спустя 5 минут 44 секунды:
    вот у меня в верстке есть тег <box> допустим.
    нужен ему закрывающий тег?)
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Не смотри это. Видео в духе "нам, говнокодерам, даже фреймворки не помеха".
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Тегов-то всего ничего. Захардкодь список незакрываемых или закрываемых, и ищи вхождение. Не усложняй простые вещи.
     
  9. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Так я не усложняю, я думал мало ли, может что-то есть, ну или что-то на основе чего можно сделать, все же встроенное лучше чем самописное.

    ну я смотрел с целью "а как это вообще работает", что бы просто "войти", а там уже все по документации и т.д.

    Добавлено спустя 1 минуту 30 секунд:
    ну если его нет в html5 то очень плохо, что он у тебя есть и как я понимаю ему нужен закрывающийся тег.
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    в том то и прелесть, что html5 разрешает использование своих тегов. можно вводить любые теги или атрибуты этих тегов и для стандартных.
    а в стилях уже описывать как этот тег будет выглядеть и влиять на страницу.
    ты вот считаешь ему нужен тег, я считаю что нет. как твоя функция будет это определять? ) никак.
    следовательно задача утопична. максимум ты можешь написать свою с десятком стандартных тегов которые тебе часто нужны. как сказал Fell-x27.
    ты бы давно её уже написал, но вместо этого тратишь тут время и ждешь какогото готового универсаьного решения, которого несуществует. это же очевидно
     
  11. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну не жду я, просто интересуюсь, может существует что-то..
    И вообще в отличии от многих меня хлебом не корми дай написать какую-нибудь не нужную хрень :)
    Вот например сейчас решил написать небольшой класс для решения этой проблемы viewtopic.php?f=13&t=52782&p=422486

    Хотя автор не просил, ни кто мне за это не заплатит, я только потрачу свое время и вообще..

    хм.... очень интересно, а как я могу задать эти стили? или под словом стили подразумевается атрибут style="border: 500px;"?
     
  12. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    и атрибут и стили в css файле.
     
  13. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    что то я не совсем понимаю, а нахрена мне создавать свои теги, неужели нельзя стандартными обойтись? чем собственные будут лучше стандартных.
    И что то я слабо представляю как можно в CSS задавать им поведение, вот я создал свой так, с соответственных название xxx, как он себя изначально будет вести как span или как div, а может как link, хрень какая то.

    А с атрибутами, ладно я понимаю еще для JS можно, что бы хранить в них что то, а как собственные атрибуты будут влиять на CSS.

    И самое главное как к этому будет относиться http://validator.w3.org/
     
  14. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    всё это уже придумали и продумали )
    если тебе это интересно - читай доки и спеки.
    то что ты об этом незнал/недумал - не значит что это хрень. это свобода. семантика. ...
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    если правильно напишешь DTD то с уважением отнесется.
     
  16. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Вопрос только один - зачем все теги заменять на php? Тут наоборот все говорят, что поменьше нужно использовать php в шаблонах....
     
  17. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    как это зачем, для удобства, так мне надо писать:
    Код (PHP):
    1. <div class="<?php echo $class; ?>" id="<?php echo $id; ?>"><?php echo $html; ?></div>
    2. <?php /* Ну или */  ?>
    3. <?php echo "<div class=\"{$class}\" id=\"{$id}\">{$html}</div>"; ?>
    и проблема в том, что если допустим id то будет id=""

    а тут допустим:
    Код (PHP):
    1. tag( 'div', [ 'class' => 'myclass', 'id' => 'myid', 'style' => '' ], $html); 
    и при этом если empty('style'), тогда данный атрибут не будет добавляться и еще кучу всего можно прикрутить, как то так.
    По крайне мере, мне вызов функции писать удобнее чем абру кадабру, что выше.

    А так все правильно говорят, меньше надо РНР в шаблонах, особенно всяких шаблонизаторов и шорт тегов. Я как раз и делаю для уменьшения РНР :)

    Добавлено спустя 2 минуты 5 секунд:
    Кстати, такой не скромный вопрос, а как по научному называются эти теги, ординарные и двойные? или требующие и не требующие закрытия?
     
  18. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    https://ru.wikipedia.org/wiki/HTML
    а зачем тебе такое?)
     
  19. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В php уже давно можно писать
    Код (Text):
    1. <div class='<?= $class; ?>'>
    Начиная с php 5.4 это не требует включённых short_tags
     
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Что только не придумают, лишь бы не заюзать шаблонизатор.

    p.s. Form в Laravel сделаны не для этого.
     
  21. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Можно и так писать :)
    Код (PHP):
    1. <?= tag('div', ['class'=>$class]);  ?>
    мне что не нравится это то, что каждый раз надо открывать РНР теги, пусти и короткие, но все же, код превращается прямо в какой то wordpress
    тем более я же не планирую все заменять, только там где надо что то динамическое.

    т.е. если вы думаете что я задумал что то вроде:
    Код (PHP):
    1. <!doctype html>
    2. <html>
    3. <head>
    4. <?= get('meta', ['charset' => 'utf-8']); ?>
    5. <?= get('title', [], 'PAGE'); ?>
    6. </head>
    7. <body>
    8. <?= get('div', ['class' => 'a', 'id' => 'b'], $message); ?>
    9. </body>
    10. </html>
    то вы ошибаетесь :)