0

Я использую ссылки на Facebook для публикации статей на Facebook.PHP escape цитаты и urlencode для facebook sharer link

Для некоторых ссылок это работает, а для других - нет. Названия и тексты, которые проходят по ссылкам, находятся на французском языке (много кавычек и специальных символов), а страница, обрабатывающая ссылку, находится в UTF8.

Мне удалось добиться того, чтобы все ссылки FB работали, просто используя «mysql_real_escape_string», прежде чем я urlencode содержимое и создать ссылку из него.

Почему "mysql_real_escape_string"?

Это был тест, потому что «htmlentities», «htmlspecialchars» и «addslashes» никогда не работали. Очевидным недостатком является то, что функция «mysql_real_escape_string» не имеет ничего общего, потому что она просто не связана с базой данных. И действительно, я получаю сообщение об ошибке, сообщающее мне, что эта функция «запрещена для пользователя ...».

В любом случае, я не планирую использовать эту функцию, но странно, что она делает ссылку Facebook-торговца 100% времени, а «добавляет» - нет. Я думал, что addlashes - это чистая PHP-версия «mysql_real_escape_string», но в ней есть что-то другое, в противном случае она должна работать одинаково, но это не так.

Любое чистое решение для замены PHP для моей проблемы?

ответ

1

Код URL основывается на стандарте RFC 1738. Текущий стандарт кодирования url изменился. RFC 3986. Функция, которую вы хотите, это rawurlencode($string); или написать функцию самостоятельно. символы, которые вы хотите заменить: '!', '*', "'", "(", ")", ";", ":", "@", "&", "=", " + "," $ ",", ","/","? ","% "," # "," [","] "

+0

Спасибо. Поэтому я избавился от всего (addslashes, mysql_real_escape_string, ...) и просто сохранил rawurlencode как окончательное преобразование, но он не работает. На 10 ссылках работало только 1. – Baylock

+1

Как насчет объединения косых черт с rawurlencode. Просто идея. Я не знаю, поможет ли это. но если facebook ожидает, что вы сбегаете с экрана, это может сработать. –

+0

Танк вы Марк. Теперь 5 ссылок работают, но 5 других нет. Действительно странно. С mysql_real_escape_string работают 10/10. Перейти фигурой ... – Baylock

Смежные вопросы