В настоящее время мои данные сохраняются в базе данных mysql, как показано ниже, из текстовой области tinymce. Мне нужно добавить период или точку в конце строки при отображении данных в html. Ниже приведен пример.
Данные, хранящиеся в базе данных
<strong>Hello World </strong>
Мне нужно добавить период в конце строки, когда строка не заканчивается периодом или восклицательным знаком или вопросительным знаком.
Когда я добавляю период в конце строки, как указано выше, он отображает « Hello World ». в HTML. Между словом «Мир» и периодом происходит пробел. Мне нужно удалить это пространство с удалением HTML-тегов.
Мой PHP-код для добавления периода в конце строки. Он отлично работает, когда нет тега HTML или если строка не заканчивается тегами HTML
$val = "<strong>Hello World </strong>"; $string_to_replace = array("<br />"," "," "); $val = str_replace("\\r\\n",' ', $val ); $val = trim(stripslashes($val)); $val = trim(str_replace($string_to_replace,'', $val )); $val_without_tag = trim(strip_tags($val)); $val_without_tag = str_replace($string_to_replace,'', $val_without_tag ); $last_val = substr($val_without_tag,-1); $regularexp = array('.','!','?'); if(!empty($last_val)){ if(in_Array($last_val, $regularexp)){ return $val; } else { return $val.". "; } }
Мои два цента, хотя это может быть не красиво.
Я бы сделал обратный поиск для «<». Если он найден, проверьте, есть ли внутри слово (не другой тег). Если это слово, поместите период в положение, в котором «<» было найдено -1 (если оно было найдено в позиции 123, период переходит в 122).
Я попытаюсь загрузить код для этого, как только я подберусь к компьютеру.