Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите со спецсимволами
 
 автор: dakota   (10.10.2008 в 21:05)   письмо автору
 
 

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

  Ответить  
 
 автор: BinLaden   (10.10.2008 в 21:06)   письмо автору
 
   для: dakota   (10.10.2008 в 21:05)
 

А что такое "спецсимволы"?

  Ответить  
 
 автор: dakota   (10.10.2008 в 21:19)   письмо автору
 
   для: BinLaden   (10.10.2008 в 21:06)
 

двойная кавычка, одиночная кавычка

  Ответить  
 
 автор: AcidTrash   (10.10.2008 в 22:46)   письмо автору
 
   для: dakota   (10.10.2008 в 21:19)
 

>двойная кавычка, одиночная кавычка
<?php
$text 
"text \" text2 ' text3";
$text preg_replace("#\"|'#"""$text);
print 
$text;
?>


P.S. А собственно зачем убирать? Вы в базу эти строки записываете?

  Ответить  
 
 автор: dakota   (10.10.2008 в 23:47)   письмо автору
 
   для: AcidTrash   (10.10.2008 в 22:46)
 

да в базу решила вопрос используюя фунцию htmlspecialchars
но почемуто при записи из csv файла в базу данных использую
$f=fopen($uploadfile, "r");
$data=array();
while($row = fgets($f))
{
$val=strtolower($row);
$val=ucfirst($val);
$val=trim($val);
$val=htmlspecialchars($val, ENT_QUOTES, 'cp1251');
$data[]=$val;
}

если в тексте были одни кавычки то их становится 3("->""") помогите разобраться

  Ответить  
 
 автор: AcidTrash   (11.10.2008 в 00:01)   письмо автору
 
   для: dakota   (10.10.2008 в 23:47)
 

Если вы записываете в базу, то воспользуйтесь обработкой данных функцией mysql_escape_string().

if(!get_magic_quotes_gpc()){
$string = mysql_escape_string($string)
}

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:05)   письмо автору
 
   для: AcidTrash   (11.10.2008 в 00:01)
 

>Если вы записываете в базу, то воспользуйтесь обработкой данных функцией mysql_escape_string().
>
>
if(!get_magic_quotes_gpc()){
>$string = mysql_escape_string($string)
>}


О Боже, что Вы советуете? Данные приходят от пользователя? Я так понял, что из файла.

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:04)   письмо автору
 
   для: dakota   (10.10.2008 в 23:47)
 

* Просит прощения у Аллаха за мысли об убийстве *

Вам не нужно удалять кавычки. Вам нужно использовать mysql_escape_string():

<?php
$f
=fopen($uploadfile"r");
$data=array();
while(
$row fgets($f))

    
$val=strtolower($row);
    
$val=ucfirst($val);
    
$val=trim($val);
    
$valmysql_escape_string($val);
    
$data[]=$val;
}
?>


P.S.
* Думает спросить или нет *
* Вспоминает недавний разговор с cheops'ом *
* Решает промолчать >:) *

  Ответить  
 
 автор: dakota   (11.10.2008 в 00:10)   письмо автору
 
   для: BinLaden   (11.10.2008 в 00:04)
 

а при этом слуши будут видны? нужно чтобы они не отображались

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:15)   письмо автору
 
   для: dakota   (11.10.2008 в 00:10)
 

Нет

  Ответить  
 
 автор: dakota   (11.10.2008 в 00:15)   письмо автору
 
   для: dakota   (11.10.2008 в 00:10)
 

данные файла
"анальгин'
"ABACAVIR"

вот что выводит
Array
(
[0] => \"\"\"анальгин\'\"
[1] => \"\"\"abacavir\"\"\"
)

while($row = fgets($f))
{
$val=strtolower($row);
$val=ucfirst($val);
$val=trim($val);
$val= mysql_escape_string($val);
$data[]=$val;
}
echo "<pre>";
print_r($data);
echo "</pre>";

при использовании $val=htmlspecialchars($val, ENT_QUOTES, 'cp1251');
Array
(
[0] => """анальгин'"
[1] => """abacavir"""
)

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:22)   письмо автору
 
   для: dakota   (11.10.2008 в 00:15)
 

> вот что выводит

А Вы не смотрите то, что перед записью -- смотрите то, что записалось. Потому что синтаксический анализатор MySQL, конечно, потом уберет лишние бекслеши.

> данные файла
> "анальгин'
> "ABACAVIR"

Может
""апельсин""
""ABACAVIR""
?

  Ответить  
 
 автор: dakota   (11.10.2008 в 00:34)   письмо автору
 
   для: BinLaden   (11.10.2008 в 00:22)
 

данные которые поступают из файла
"""анальгин'"
"""ABACAVIR"""

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:49)   письмо автору
 
   для: dakota   (11.10.2008 в 00:34)
 

Ну, всё правильно. После записывания в таблицу лишние бекслеши исчезнут и будут те данные, что находятся в файле.

  Ответить  
 
 автор: dakota   (11.10.2008 в 00:57)   письмо автору
 
   для: BinLaden   (11.10.2008 в 00:49)
 

но в файле csv данные выглядят так :
"анальгин'
"ABACAVIR"

откуда потом при чтении берутся дополнительныек кавычки непонятно

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 01:26)   письмо автору
 
   для: dakota   (11.10.2008 в 00:57)
 

В таком случае, наверное, Вы показали не весь код.

  Ответить  
 
 автор: AcidTrash   (11.10.2008 в 00:15)   письмо автору
 
   для: BinLaden   (11.10.2008 в 00:04)
 

>О Боже
Не катит, для мусульман.

P.S. По привычке с данными от юзеров.

  Ответить  
 
 автор: dakota   (11.10.2008 в 00:18)   письмо автору
 
   для: AcidTrash   (11.10.2008 в 00:15)
 

откуда берутся дополнительные кавычки?

  Ответить  
 
 автор: BinLaden   (11.10.2008 в 00:19)   письмо автору
 
   для: AcidTrash   (11.10.2008 в 00:15)
 

> Не катит, для масульман.

А я не в курсе, а как у мусульман? У них Бога нет что ли?

> По привычке с данными от юзеров.

Ну раз у Вас такие привычки, то не советуйте...Что еще можно сказать?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования