Alaya » 2010.09.16 10:01

Как сделать, что бы при копировании текста в базу из текстовых файлов этим кодом, символы (например перенос или _ или * и так далее), не записывались в базу ?

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$q = mysql_query('SELECT `path` FROM `files` WHERE LOWER(SUBSTR(`path`, -3)) = "txt"', $mysql);
 
 
$ok = $fuck = 0;
while($r = mysql_fetch_assoc($q)) {
$f = fopen($r['path'], 'r');
$name = htmlspecialchars(iconv_substr(trim(fgets($f, 1024). fgets($f, 1024)), 0, 100), ENT_NOQUOTES);
fclose($f);
 
if (mysql_query(
'UPDATE
`files`
SET
`name` = "'.mysql_real_escape_string($name, $mysql).'",
`rus_name` = "'.mysql_real_escape_string($name, $mysql).'"
WHERE
`path` = "'.mysql_real_escape_string($r['path'], $mysql).'"
LIMIT 1 ;'
, $mysql)) {
$ok++;
} else {
$fuck++;
}
}
 
mysql_close($mysql);

То есть это часть текста из текстового файла берется для его названия, заносятся в базу. Я хотела бы, что бы знаки * < / _ перенос сроки и прочие, присутствующие иногда, как бы пропускались, не записывались в базу, не отображались в названии, а чистый текст.

Nu3oN » 2010.09.16 11:40

если я тебя так понял то:
$var = strtr($name, array("*" => null, "\n" => null));
И так далее

Alaya » 2010.09.16 13:10

Спасиб, но не работает :( куда эту запись вставить?

Код:

1
2
3
4
5
6
$ok = $fuck = 0;
$var = strtr($name, array("*" => null,"_" => null, "\n" => null));
 
while($r = mysql_fetch_assoc($q)) {
$f = fopen($r['path'], 'r');
$name = htmlspecialchars

так?

Nu3oN написал:

если я тебя так понял то:
$var = strtr($name, array("*" => null, "\n" => null));
И так далее

Morgan » 2010.09.16 13:28

Код:

1
2
$name = htmlspecialchars(iconv_substr(trim(fgets($f, 1024). fgets($f, 1024)), 0, 100), ENT_NOQUOTES);
$name = strtr($name, array("*" => null, "\n" => null));
Alaya » 2010.09.17 08:49

Morgan написал:

спасибо )))) всё получилось.