Когда я питаюсь загрузить ифу в форму у меня возникла проблема с "", как этого избежать? К примеру если я ввожу текст <TOV "new company"> В фаил записуеться с помощю POST, file_put_contents вот такое <"company_name_UA":"TOV \"new company\""> После я хочу выгрузить с файла эту инфу <input type="text" value= "<?php echo isset($questionnaire['company_name_UA']) ? $questionnaire['company_name_UA'] : '' ?>"> и тут начинаеться проблема в валуе попадает текст <TOV "new company"> А точнее выглядит это так value="TOV "newcompany"" как это испарвить?
Это, по ходу, у вас магические кавычки включены. Какая версия PHP? Перед выводом всегда htmlspecialchars, и всё будет нормально. Обратно будут приходить кавычки, не сущности. P.S. Сразу определимся, русский не родной у вас? --- Добавлено --- PHP: <input type="text" value= "<?php echo isset($questionnaire['company_name_UA']) ? htmlspecialchars($questionnaire['company_name_UA'] ): '' ?>">
Нет не родной! Магические кавычки я проставил офф magic_quotes_gpc Off magic_quotes_runtime Off magic_quotes_sybase Off
И file_put_contents записывает лишние слеши в файл? Не может такого быть. Может, сервак не даёт отключать кавычки. А вообще, очень старая версия PHP у вас... ОК, тогда к этому не вернёмся. Если не родной, то нормально пишите.
Умные люди делают в начале своего проекта наподобие такого : PHP: function stripslashes_deep( $value ) { if ( is_array ( $value ) ) { $value = array_map ( 'stripslashes_deep', $value ); } elseif ( is_object ( $value ) ) { $vars = get_object_vars ( $value ); foreach ( $vars AS $key => $data ) { $value -> {$key} = stripslashes_deep( $data ); } } elseif ( is_string ( $value ) ) { $value = stripslashes ( $value ); } return $value; } function __SQLiteRay_magic_quotes() { if ( get_magic_quotes_gpc () ) { $_GET = stripslashes_deep( $_GET ); $_POST = stripslashes_deep( $_POST ); $_COOKIE = stripslashes_deep( $_COOKIE ); } // GET + POST. $_REQUEST = array_merge ( $_GET, $_POST ); } __SQLiteRay_magic_quotes();