Переход по ссылке с переменной.
Здравствуйте! Надеюсь на помощь, что-то совсем голова кругом, проверяю большой код, устала с документацией. Корректен ли кусок кода:
foreach ($ulink->data as $val){ $string1 = URLpage; $string2 = '/url/'.$val->data['Id']; if ($string1 !== $string2){ print "<meta http-equiv='refresh' content='0; url=https://{$_SERVER['SERVER_NAME']}$string2'>"; } } Т.е. проверяем, если переменная $string1 не равна переменной $string2, то перенаправляем на $string2, и вот это перенаправление правильно записано? "<meta http-equiv='refresh' content='0; url=https://{$_SERVER['SERVER_NAME']}$string2'>"или надо так: "<meta http-equiv='refresh' content='0; url=https://{$_SERVER['SERVER_NAME']}" . $string2 . "'>" |
Sonya, это точно в тему "Общие вопросы Javascript"? :blink:
|
Sonya,
http://redirekt.info/article/redirek...a-refresh.html echo '<meta http-equiv="refresh" content="0;https://'.$_SERVER['SERVER_NAME'].$string2.'">'; |
Цитата:
echo '<meta http-equiv="refresh" content="0; url=https://' . $_SERVER['SERVER_NAME'] . $string2 . '">'; |
Nexus,
laimas, Большое спасибо! |
Да, только сейчас обратила внимание - вместо print лучше здесь echo?
|
Sonya, почитайте тут про отличия этих функций:
http://php.net/manual/ru/function.print.php |
Цитата:
|
Цитата:
|
А почему бы не сделать так?
foreach ($ulink->data as $val){ $string1 = URLpage; $string2 = '/url/'.$val->data['Id']; if ($string1 !== $string2){ header("Location: https://{$_SERVER['SERVER_NAME']}$string2"); } } |
ruslan_mart,
не получится если уже был вывод в браузер. Не понятно другое - зачем здесь вообще цикл. |
Цитата:
вот холивары на тему что лучше и быстрее --- И да, Соня, этот цикл должен быть между тегами <head></head>, если до вывода чего либо в браузер, то лучше используй header('Location: ') |
Цитата:
|
Цитата:
|
Цитата:
Ну как можно подымать речь о скоростях применительно к операции выполненной (а может и нет, по условию) всего один раз? В контексте кода автора без разницы что будет применено. А вот поведение данных конструкций языка в контексте кода вообще, различается, что в первую очередь и учитывают разработчики. |
автор пишет
Цитата:
|
Цитата:
|
Цитата:
$form_open='<form>'; $input='<input/>'; $form_close='</form>'; //Вариант с print print $form_open; print $input; print $form_close; //Вариант с echo echo $form_open, $input, $form_close;В кач-ве аргумента: с "echo" конструкцию вывода информации нужны вызвать единожны. |
Ну, так объясните в чем глобальная разница и где мне лучше использовать то или другое ? Иначе те кто не понимают так и будут делать ошибки ... )))
--- пример хреновый, честно $form_open='<form>'; $input='<input/>'; $form_close='</form>'; //Вариант с print //Вот мой вариант с print print $form_open. $input. $form_close; //Вариант с echo echo $form_open, $input, $form_close; |
Lion777,
Цитата:
Цитата:
|
Цитата:
|
Lion777,
Цитата:
|
Цитата:
if(true and false or print('some text')) echo PHP_EOL, 'true'; PS. Разница между конструкциями есть, однако если использовать конструкции исключительно для вывода информации, то тут можно использовать любую из них, разница будет незаметна. |
Цитата:
|
Цитата:
Может вы заморочитесь и найдете в исходниках реализацию этой конструкции, чтобы доказать мою неправоту) И, кстати, да, я думаю, что конкатекация в "echo" не имеет место быть :) |
Цитата:
--- Цитата:
|
Цитата:
<div><?php print 'text'?></div> но все таки проще так: <div><?='text'?></div> и это будет выведено именно с использованием echo, print тут никак не прокатит так как результатом будет не <div>text</div> а <div>text1</div> ибо print являясь конструкцией ведет себя как функция, которая всегда возвращает 1. Вот так не получится: expression ? echo 1 : echo 0 а так прокатит: expression ? print 1 : print 0 с echo только с выносом конструкции за пределы выражения echo expression ? 1 : 0 Открывайте матчасть, читайте. |
Ахах, начнем с конца )))
конечно так не напишешь expression ? echo 1 : echo 0 ведь echo ничего не возвращает и в чем тут преимущество ? echo expression ? 1 : 0; от print expression ? 1 : 0; или expression ? print 1 : print 0; ? Данная конструкция<?='text'?> это всего лишь альтернативный способ записи echo и конечно если в ней написать <div><?= print 'text'?></div> то выведет text1, ведь это тоже, что написать echo print text;, ну а если уж так написать <?php print 'text'?> то вся программа пойдет на перекосяк )))... И что вы хотели доказать ? Поумничать ? Преимущество в чем ? Что тот, что тот могу использовать во всех конструкциях, так что лучше то ??? |
Lion777,
учите матчасть, ибо вы не понимаете о чем говорите. Может после прочтения поймете, чем выгоднее запятая от точки. Без обид, но вы несете такую пургу, что вести диалог далее нет никакого смысла. |
Да какие тут обиды ))), дайте ссылку почитать о точках с запятыми, а то походу весь инет пургу несет )))
|
Ну а какая может быть еще ссылка как не на официальное руководство создателей http://www.php.net/manual/ru/index.php
|
Умничать любой может, а вы докажите, что умный и дайте ссылочку о точках с запятыми..
|
Я не обязан кому-то что-то доказывать, да и желания такового нет. В руководстве все есть - операторы, приоритеты и описание выше упомянутых конструкций. Открывайте соответствующие разделы руководства сами, вникайте.
|
Цитата:
Важно то, что print можно так применить, а "echo" не получится. Безусловно, можно изменить условие и избавится от print заюзав "echo", но это уже будет просто игнорирование имеющегося функционала языка. Все равно, что вместо, к примеру, "preg_match_all" юзать "preg_match" в цикле. Цитата:
PS. что лучше: ванильное или шоколадное мороженное?) Смысл схож. |
Цитата:
тип так условие ? 1 : print 'Ошибочка вышла!'; Но в контексте данной темы было указанно тс, что для нее нету разницы, что использовать, пока профессор laimas не начал поучительно умничать... |
Цитата:
Цитата:
|
laimas_vaikules,
- Что за клон? Тролль? |
Dilettante_Pro,
Не хочу оффтопить. Но раз уж так просите. Цитата:
|
laimas_vaikules,
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:51. |