как сделать замену в строке " на \"

FRIE

Новичок
как сделать замену в строке " на \"

у меня выводится кнопка , и в ней событие которое передает параметры. некоторые параметры могут содержать двойную кавычку "
и строка поэтому портится. я пробовал вручную слешить вот так \", и всё работало отлично, но автомат ом заменить " на \" не получается

замена:
PHP:
$pattern = "\"";
$replacement = "/\"";
echo preg_replace($pattern, $replacement, $org);
исходный код в который вставляются значения:
PHP:
echo"<input type='submit'  value='Добавить'  onclick='New(\"$org\",\"$contman\",\"$kontakt\",\"$cpid\")';>
</div>";
 

Фанат

oncle terrible
Команда форума
str_replace('"','\"',$org)

хотя тут, мне кажется, поможет простой htmlspecialchars()
 

FRIE

Новичок
htmlspecialchars() не помогает, а с str_replace('"','\"',$org)
получилось тоже самое что и с htmlspecialchars()

вот код который образуется
$org содержит текст "Подарки" - в кавычках

<input type="submit" ;="" onclick="New("Магазин "Подарки" " "Александр" "495 1234567" "44")" value="Добавить">
 

Фанат

oncle terrible
Команда форума
со str_replace в принципе не может получиться то же самое, что с htmlspecialchars
первая делает \", а вторая - &amp;quot;

что значит "не помогает"? заменил, вывел - не добавлились слеши?
или заменил, потом сделал еще 500 различных операций, вывел, и тут опа - нету? А откуда тогда такая уверенность, что не помогает именно str_replace, а не одна из 500 операций, которые были после?
 

FRIE

Новичок
привожу полный код
PHP:
$org='Магазин "Подарки" ';
$contman='Александр';
$kontakt='495 1234567';
$cpid='44';
str_replace('"','\"',$org);
echo"<input type='submit'  value='Добавить'  onclick='New(\"$org\",\"$contman\",\"$kontakt\",\"$cpid\")';>
</div>";
на выходе получаю
PHP:
<input type="submit" ;="" onclick="New("Магазин "Подарки" " "Александр" "495 1234567" "44")" value="Добавить">
больше никаких операций не делаю с переменными1

-~{}~ 09.09.10 14:19:

тоесть слово подарки в хтмл без слешей
 

FRIE

Новичок
неа , открывается ссылка и в поля в форме вставляются эти значения

getTelepaticMode( 'на выходе получаю' );

я вроде всё понятно написал =)

-~{}~ 09.09.10 14:46:

эта строка, хтмл который вижу в фаербаге
 

Semen

Семён
PHP:
$org='Магазин "Подарки" ';
$contman='Александр';
$kontakt='495 1234567';
$cpid='44';
$org=str_replace('"','\"',$org);
echo"<input type='submit'  value='Добавить'  onclick='New(\"$org\",\"$contman\",\"$kontakt\",\"$cpid\")';>
</div>";
на выходе получаю
PHP:
<input type="submit" ;="" onclick="New("Магазин "Подарки" " "Александр" "495 1234567" "44")" value="Добавить">
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Инпут кривой. ; убери из текста, это во первых.
Во вторых, ты получаешь именно то, что делаешь.
В третьих, Фанат прав -
хотя тут, мне кажется, поможет простой htmlspecialchars()
 

FRIE

Новичок
Автор оригинала: флоппик
Инпут кривой. ; убери из текста, это во первых.
Во вторых, ты получаешь именно то, что делаешь.
В третьих, Фанат прав -
про инпут спасибо , всегда думал что надо ; ставить

я получаю то что делаю - согласен, но код я привел и то что получилось написал.

то что хочу в итоге получить чтобы это было в хтмл:

<input type="submit" onclick="New("Магазин \"Подарки\" " "Александр" "495 1234567" "44")" value="Добавить">
 

Фанат

oncle terrible
Команда форума
е-мое.
ну надо же НАСТОЛЬКО не понимать, что ты делаешь.
Еще раз, читай по буквам: заменил, вывел.
не "вот полный код, который не знаю ваще что делает", а всего
ДВЕ операции: заменил и вывел.
В коде это выглядит вот так:

$org='Магазин "Подарки" ';
str_replace('"','\"',$org); //заменил
echo $org; // вывел

вывод делается оператором echo
Результат смотрится прямо на экране
без файрбагов и хтмлов. ПРОСТО результат замены и НИЧЕГО больше.

повтыкав на полученный результат начинаем чесать репу
особо талантливые могут залезть в документацию
если не помогает - смотрим ответ этого недохакера
неужели до сих пор непонятно?
 

SiZE

Новичок
Для вывода в инпут рулит htmlspecialchars( $str, ENT_QUOTES ); при получении если надо вернуть все в исходное состояние делаешь htmlspecialchars_decode
 
Сверху