Добавляет косые черты как прямые косые черты в php - PullRequest
0 голосов
/ 12 июня 2011

У меня есть файл на моем сервере, к которому я хочу получить доступ.Имя файла: ken\'s book.doc

Но в моей базе данных оно было сохранено как ken's book.doc

(я исправил проблему с обратной косой чертой, но все еще возникают проблемы с доступом к ранее загруженным файлам на сервере.

Я использовал addlashes, чтобы добавить обратную косую черту, но он отображает ее как: ken/'s book.doc (это косая черта вместо обратной косой черты.

Я использовал:

str_replace("'", "\'", $filename);

пока он отображается как косая черта.

Как я могу это исправить?

Спасибо

РЕДАКТИРОВАТЬ

ДополнительноИнформация: я использую новое значение как часть ссылки:

<a href="<?php echo str_replace("'", "\'", $filename);?>">View</a>

1 Ответ

1 голос
/ 13 июня 2011

Если у вас есть имя файла, которое содержит обратную косую черту на диске, я бы сначала исправил это.Ваша вторая проблема, по-видимому, не заключалась в использовании mysql_real_escape_string при сохранении этого имени файла в базе данных (почему оно оказалось там без обратной косой черты).не добавляйте косые черты в одиночку.Эта часть вашей истории не соответствует действительности.И чтобы удалить их снова, вам не понадобится причудливый вызов str_replace, а просто stripslashes.

Реальная проблема (после вашего редактирования) поворачиваетсябыть HTML-ссылкой.Это просто потому, что браузеры имеют привычку превращать обратную косую черту в прямую косую черту в URL.Для предотвращения этого примените urlencode()

 <a href="<?=urlencode(stripslashes($filename));?>">View</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...