Я использую simplehtmldom, чтобы получить некоторые данные веб-сайта с этим
$data = array();
$html = file_get_html('http://www.example.com/'.$value, false, $context);
foreach($details as $value){
$dataele = array();
foreach($html->find('*[class=style11]') as $element){
$houseinfo = trim($element->plaintext, " \t\n\r\0\x0B\xC2\xA0");
echo $houseinfo;
echo '<br>';
array_push($dataele, $houseinfo);
}
}
но я обнаружил, что есть некоторые
когда я вставляю эти данные в базу данных. Я пробовал разные методы, но он не может действительно удалить
html-тег. Методы, которые я пробовал:
$houseinfo = trim($element->plaintext, " \t\n\r\0\x0B\xC2\xA0");
$dataele[1] = html_entity_decode($dataele[1]);
$dataele[1] = str_replace(" ", "_", $dataele[1]);
$houseinfo = filter_var($houseinfo, FILTER_SANITIZE_STRING);
$dataele[1] = preg_replace("/&#?[a-z0-9]+;/i", "", $dataele[1]);
надеюсь, это поможет.
$string = str_replace(' ', '-', htmlspecialchars_decode($element->plaintext));
$string = preg_replace('/[^A-Za-z0-9-_!@#:$%^&*\/()+={}<>?;, \-]/', '', $string);
$string = preg_replace('/-+/', ' ', $string);
echo $string;
Note: You might wonder why trim(html_entity_decode(' ')); doesn't reduce the string to an empty string, that's because the ' ' entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 encoding.