Перейти к содержимому


Партнерская программа Kredov

Пробел в PHP

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 30 Декабрь 2010 - 21:14

Решил упростить добавление кнопок и написать для этого функцию. Вот такую
function form($url, $txt)
{
echo "<form action=$url method=Post>
<input type='submit' value=$txt>
</form>";
}


Добавил кнопочку
form('orderform.php', 'Страница заказа');

А обработчик РНР урезал и вывел только "Страница". Я сначала начал грешить на длину кнопки, но потом понял что это здесь не при чем. Фишка однозначно в пробеле. Тогда вспомнил что для пробела в РНР есть специальное обозначение, погуглил и нашел его, а именно &nbsp;
Значит правильно будет вот так
form('orderform.php', 'Страница&nbspзаказа');

Это немного не практично, может я сделал что-то не так? кавычки поставил вместо одинарных - двойные (или наоборот)?

пс. просто решил поделиться открытием, может кому-то будет полезно

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 30 Декабрь 2010 - 21:18

у вас как с html?
  • 0

#3 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 30 Декабрь 2010 - 21:28

ха.. точно! вспомнил что в html спецсимволы обозначаются такими "крякозябрами". Весь текст записанный на месте $txt есть html кодом, значит пробел нужно ставить в виде &nbsp;
Но я не пойму, почему в html можно просто поставить пробела, а здесь нет? и почему слово "заказа" сьедается, а не просто сливается со словом "Страница"?
  • 0


#4 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 30 Декабрь 2010 - 21:32

здесь тоже можно, я потому и спросил про html судя по всему у вас матчасть не изучена
код в каком редакторе пишите?
  • 0

#5 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 30 Декабрь 2010 - 21:34

матчасть изучена, но забыта)
пишу в NotePad++, синтаксис ставлю PHP


  • 0


#6 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 30 Декабрь 2010 - 21:49

если идти твоим путем, почувствуй разницу
<?php
function form($url, $txt)
{
echo "<form action='".$url."' method='post'>
<input type='submit' value='".$txt."'>
</form>";
}
form('orderform.php', 'Страница заказа');
?>

  • 0

#7 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 30 Декабрь 2010 - 21:53

Banderas, попробуй посмотреть исходный код генерируемой страницы и, думаю, сразу все поймешь ;)
Вот так будет правильнее сделать то, что тебе надо:
function form($url, $txt)
{
echo "<form action='" .$url. "' method='post'>
<input type='submit' value='" .$txt. "'>
</form>";
}

Значения атрибутов формы должны быть заключены в кавычки.
  • 0


#8 xssx

xssx
  • Пользователь
  • 2 сообщений
  • Репутация: 0

Отправлено 10 Январь 2011 - 00:45

Имея такой код:


<?php

echo '<a href="'.$linkTarget.'" onmouseover="return overlib('Какой то текст');" onmouseout="return nd();" >';


echo stripslashes(ads_html::cutLongWord($row->ad_headline)).'</a>';

?>


В этом случаи первое echo обрывается сразу после return overlib( - так как есть кавычка ' (тоисть не срабатывает яваскрипт)

Если заменить ' -- > & # 39; подсказка overlib будет выдавать текст 'Какой то текст'

Подскажите синтаксис если заменить 'Какой то текст' на переменную $textoverlib
  • 0

#9 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 10 Январь 2011 - 08:59

xssx,
достаточно экранировать вложенные кавычки и все у вас получится:

<?php
echo '<a href="'.$linkTarget.'" onmouseover="return overlib(\'Какой то текст\');" onmouseout="return nd();" >';
echo stripslashes(ads_html::cutLongWord($row->ad_headline)).'</a>';
?>

вынос текста в переменную:
<?php
$textoverlib = 'Какой то текст';
echo '<a href="'.$linkTarget.'" onmouseover="return overlib(\''.$textoverlib.'\');" onmouseout="return nd();" >';
echo stripslashes(ads_html::cutLongWord($row->ad_headline)).'</a>';
?>


  • 0

#10 xssx

xssx
  • Пользователь
  • 2 сообщений
  • Репутация: 0

Отправлено 10 Январь 2011 - 21:45

Огромное спасибо разобрался
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru