if ( $value[6] AND !empty( $xfieldsdata[$value[0]] ) ) {
$temp_array = explode( ",", $xfieldsdata[$value[0]] );
$value3 = array();
foreach ($temp_array as $value2) {
$value2 = trim($value2);
$value2 = str_replace("'", "'", $value2);
if( $config['allow_alt_url'] == "yes" ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";
}
$xfieldsdata[$value[0]] = implode(", ", $value3);
unset($temp_array);
unset($value2);
unset($value3);
}
Он слова разделенные запятыми преобразует в ссылки
Разделителем служит запятая
Я пытаюсь добавить дополнительно как разделители знаки ";" и "&"
Заменил $temp_array = explode( ",", $xfieldsdata[$value[0]] ); на $temp_array = preg_split("/[,|;|&]/", $xfieldsdata[$value[0]]);
Строчка работает корректно, но вот вместо любого знака на сайте выводится запятая.
Я так понимаю это из за этой строчки
$xfieldsdata[$value[0]] = implode(", ", $value3);
Так как в конечном массиве не остаётся информации о том, какой разделитель там был. implode не может определить, где какой разделитель применять.
Один человек подсказал что необходимо использовать PREG_SPLIT_OFFSET_CAPTURE то есть
$temp_array = preg_split("/[,|;|!]/", $xfieldsdata[$value[0]], -1, PREG_SPLIT_OFFSET_CAPTURE);
затем использовать цикл и значение полученное с помощью флага
Подскажите пожалуйста как это правильно сделать в этом коде?