Я строю функцию чтения текста заголовка, найденную на веб-странице между тегами <title></title>
.Я использую следующий код регулярного выражения для получения текста заголовка с html-страницы:
if(preg_match('#<title>([^<]+)</title>#simU', $this->html, $m1))
$this->title = trim($m1[1]);
Я использую следующее для кодирования значения оператора вставки mysql:
mysql_real_escape_string(rawurldecode($this->title))
Таким образом, у меня остается база данных, полная заголовков, содержащих html-сущности (& nsbp и т. Д.) И иностранные символы, такие как
Dating S.o.s | Gluten-free, Dairy-free, Sugar-free Recipes And Lifestyle Tips
. Цель состоит в том, чтобы декодировать, удалять, очищать заголовки,Посмотрите как можно ближе к идеальному английскому.
Я построил функцию, которая использует следующие 2 регулярных выражения для удаления html-сущностей и ограничения нежелательной почты соответственно.И хотя он не идеален (потому что он удаляет html-сущности, а не сохраняет их), он наиболее близок к чистоте, чем у меня.
$string = preg_replace("/&#?[a-z0-9]+;/i","",$string);
//remove all non-normal chars
$string = preg_replace('/[^a-zA-Z0-9-\s\'\!\,\|\(\)\.\*\&\#\/\:]/', '', $string);
Но неанглийские символы по-прежнему существуют.
Может ли кто-нибудь предложить помощь в отношении:
- Лучший способ сохранить эти строки заголовка в БД, пытаясь сохранить английское намерение (пунктуация, апострофия и т. Д.)
- Как преобразовать или устранить странные символы, как показано в заголовке моего примера выше?
Большое спасибо за вашу помощь!