Я хочу, чтобы позволить своим пользователям создать ссылку URL-адрес и метку в одном поле, как:амперсандов в URL гласит точку с запятой с помощью PHP взорваться()
Регистр Теперь; www.abc123.com
или просто
www.abc123.com
мой код выглядит следующим образом:
$cta_array = explode(";", $field) ;
if(count($cta_array) > 1){
$cta = '<a href="'.esc_url($cta_array[1]).'" class="button '.$color.'">'.esc_html($cta_array[0]).'</a>';
}
else{
$cta = '<a href="'.esc_url($field).'" class="button '.$color.'">Select</a>';
}
return $cta;
Только проблема, если URL они введите строки запроса с амперсандами, амперсанды будут обрабатываться как точки с запятой функцией explode(), поэтому, если они вводят
Book Now; http://www.abc123.com/scripts/WebObjects.dll/AAAOnline?association=CAA&club=272
$ cta_array переменная возвращает это:
Array
( [0] = > Забронировать [1] = > http://www.aaa.com/scripts/WebObjects.dll/AAAOnline?association=CAA& [2] = > клуб = 272 )
Я думаю, что его преобразование '&' в &
и эта точка с запятой используется как del imiter, но я не уверен, как это исправить.
Вы пытались заменить & на & перед взрывом? – developerwjk
'explode()' не конвертирует амперсанды в свой html escape. Это уже было. Что делает ваша функция 'esc_url()'? – mario
@developerwjk спасибо, что решила проблему. – drav