| |
|
|
| | Здраствуйте уважаемые мастера.
У меня 2 вопроса:
1. В строке нужно заменить знак вопроса на знак точки. Делаю так:
$file_pic = ereg_replace('?', '.', $file_pic);
получаю предупреждение (Warning: ereg_replace() [function.ereg-replace]: REG_BADRPT)
и пустое значение переменной $file_pic.
Как решить эту задачу?
2. В коде:
<?php
$row = mysql_fetch_assoc($result);
$file_pic="$row[ORIGINALTITLE] ($row[TRANSLATEDTITLE]).jpg";
//$file_pic = ereg_replace('?', '.', $file_pic);
$file_pic = "$DOCUMENT_ROOT/catalog/".$file_pic;
echo($file_pic);
if (file_exists("$file_pic")==false)
$file_pic="$DOCUMENT_ROOT/catalog/net.jpg";
echo("<CENTER><IMG SRC='$file_pic' ALT='$row[TRANSLATEDTITLE] / $row[ORIGINALTITLE] ($row[YEAR])'><BR></CENTER>");
?>
если в переменной $file_pic (хранящей путь и имя файла) встречается одинарная кавычка (') то после неё название файла обрывается т.е. если
$file_pic=C:/Apache2/htdocs/catalog/Knight's Tale, A (История рыцаря).jpg
то в итоге выполнения этого кода смотрю свойства картинки и вижу:
file:///C:/Apache2/htdocs/catalog/Knight
всё что после одинарной кавычки отрезалось
Подскажите пожалуйста как можно поступить в моём случае? Можно ли это сделать без переименовывания всех файлов содержащих в имени одинарную кавычку?
Спасибо. | |
| |
|
|
| |
|
|
| |
для: Dizzer
(21.03.2007 в 09:56)
| | | 1)
$file_pic = ereg_replace('/\?/', '.', $file_pic); | |
| |
|
|
| |
|
|
| |
для: ZuArt
(21.03.2007 в 10:09)
| | | Попробовал данный вариант - ни каких результатов, вернее результат отрицательный, ошибки уже не выходит, но и вопросы на точки в строке не меняются :( | |
| |
|
|
| |
|
|
| |
для: Dizzer
(21.03.2007 в 09:56)
| | | 1. В строке нужно заменить знак вопроса на знак точки: $file_pic = str_replace('?', '.', $file_pic);
И не нужно применять функции, назначение которых неизвестно.
2.Заключайте имена файлов не в одинарные, а в двойные кавычки. А само имя прогоняйте через htmlspecialchars().
Bообще же такие имена лучше не применять. | |
| |
|
|
| |
|
|
| |
для: Trianon
(21.03.2007 в 10:15)
| | | >1. В строке нужно заменить знак вопроса на знак точки: $file_pic = str_replace('?', '.', $file_pic);
>И не нужно применять функции, назначение которых неизвестно.
Вы знаете как в строке заменить знак вопроса на знак точки?
>2.Заключайте имена файлов не в одинарные, а в двойные кавычки. А само имя прогоняйте через htmlspecialchars().
>Bообще же такие имена лучше не применять.
Заключить в двойные кавычки не получится, так как (если вы конечно заметили) оно (имя) используется внутри конструкции echo("..<HTML теги>...'$file_pic'....<HTML теги>....");
Подскажите как реализовать ваш ответ на практике?
Спасибо. | |
| |
|
|
| |
|
|
| |
для: Dizzer
(23.03.2007 в 13:11)
| | | Сорь - функция не та... =)
1) $file_pic = preg_replace('/\?/', '.', $file_pic);
2) заключить в двойные кавычки БОЛЕЕ чем получится, если их просто экранировать обратным слешем echo "..<HTML теги>..\"$file_pic\"....<HTML теги>...."; | |
| |
|
|
| |
|
|
| |
для: Dizzer
(21.03.2007 в 09:56)
| | | 1. Народ, зачем велосипеды, зачем регулярки?
<?php
$str = str_replace("?", ".", $str);
?>
|
работает в 16 раз быстрее
2. addslashes();
http://www.klax.tula.ru/~mihdan | |
| |
|
|
| |
|
|
| |
для: mihdan
(23.03.2007 в 13:27)
| | | Спасибо всем откликнувшимся на мою проблемму :)
В итоге помогло:
1. $file_pic = str_replace("?", ".", $file_pic);
2. ...IMG SRC=\"$file_pic\"...
Проблемма решена. | |
| |
|
|