Проблема с символом конца строки
// Берём первое слово первой строки (отделено табом)
$start_time = strtok($prog_body, " ");
$sort_id = 1;
// Пока есть слова
while($start_time)
{
$name = strtok(" ");
$org_name = strtok(" ");
$b_line = strtok(" ");
$synopsis = strtok(" ");
$cast = strtok(" ");
$director = strtok("\n");
$query = "insert into tv_prog (date, chanel_id, start_time,
name, org_name, b_line, synopsis,
cast, director, enabled, sort_id)
values('$day_date', '$chanel', '$start_time', '$name',
'$org_name', '$b_line', '$synopsis', '$cast',
'$director', 'Y', '$sort_id')";
$result = mysql_query($query);
$sort_id = $sort_id + 1;
$start_time = strtok(" ");
}
...
ну и т. д. дальше не важно
этот код делает следующее
в форму в textarea забивается текст по следующему формату:
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
и т. д.
Программа распарсивает этот текст и раскидывает по таблице в базе данных.
Так вот в чём проблема:
в поле director в конце каждый раз (кроме последней строки) присутствует лишний символ(жирная вертикальная чёрточка :) ).
как я понимаю, это из-за того что под виндой(клиент IE) и под linuxом (apache) по разному записывается символ перевода строки. Пробовал как в C в качестве разделителя \r\n (а также \n\r) задать, но не помогло. Можно от этого символа как-нибудь просто избавиться?
Цитата:
Originally posted by ksicom
Есть такой участок кода
// Берём первое слово первой строки (отделено табом)
$start_time = strtok($prog_body, " ");
$sort_id = 1;
// Пока есть слова
while($start_time)
{
$name = strtok(" ");
$org_name = strtok(" ");
$b_line = strtok(" ");
$synopsis = strtok(" ");
$cast = strtok(" ");
$director = strtok("\n");
$query = "insert into tv_prog (date, chanel_id, start_time,
name, org_name, b_line, synopsis,
cast, director, enabled, sort_id)
values('$day_date', '$chanel', '$start_time', '$name',
'$org_name', '$b_line', '$synopsis', '$cast',
'$director', 'Y', '$sort_id')";
$result = mysql_query($query);
$sort_id = $sort_id + 1;
$start_time = strtok(" ");
}
...
ну и т. д. дальше не важно
этот код делает следующее
в форму в textarea забивается текст по следующему формату:
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
и т. д.
Программа распарсивает этот текст и раскидывает по таблице в базе данных.
Так вот в чём проблема:
в поле director в конце каждый раз (кроме последней строки) присутствует лишний символ(жирная вертикальная чёрточка :) ).
как я понимаю, это из-за того что под виндой(клиент IE) и под linuxом (apache) по разному записывается символ перевода строки. Пробовал как в C в качестве разделителя \r\n (а также \n\r) задать, но не помогло. Можно от этого символа как-нибудь просто избавиться?
Есть такой участок кода
// Берём первое слово первой строки (отделено табом)
$start_time = strtok($prog_body, " ");
$sort_id = 1;
// Пока есть слова
while($start_time)
{
$name = strtok(" ");
$org_name = strtok(" ");
$b_line = strtok(" ");
$synopsis = strtok(" ");
$cast = strtok(" ");
$director = strtok("\n");
$query = "insert into tv_prog (date, chanel_id, start_time,
name, org_name, b_line, synopsis,
cast, director, enabled, sort_id)
values('$day_date', '$chanel', '$start_time', '$name',
'$org_name', '$b_line', '$synopsis', '$cast',
'$director', 'Y', '$sort_id')";
$result = mysql_query($query);
$sort_id = $sort_id + 1;
$start_time = strtok(" ");
}
...
ну и т. д. дальше не важно
этот код делает следующее
в форму в textarea забивается текст по следующему формату:
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
aaa<tab>bbb<tab>ccc<tab><следующая строка>
и т. д.
Программа распарсивает этот текст и раскидывает по таблице в базе данных.
Так вот в чём проблема:
в поле director в конце каждый раз (кроме последней строки) присутствует лишний символ(жирная вертикальная чёрточка :) ).
как я понимаю, это из-за того что под виндой(клиент IE) и под linuxом (apache) по разному записывается символ перевода строки. Пробовал как в C в качестве разделителя \r\n (а также \n\r) задать, но не помогло. Можно от этого символа как-нибудь просто избавиться?
попробуй \\n .
взять квери и отрезать у него '|'X)-
вообще в разнос идёт, где-то две чёрточки, где-то вообще конца строки не видит...
Добавил:
$director = str_replace("\r", "", $director);
Всем спасибо