无法使用simplehtmldom删除明文中的空格

时间:2015-02-04 07:59:24

标签: php preg-replace trim simple-html-dom

我使用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);

    }   
}

但是当我将这些数据插入数据库时​​,我发现有一些&nbsp;。 我尝试了不同的方法,但它无法真正删除&nbsp; html标记。我试过的方法:

$houseinfo = trim($element->plaintext, " \t\n\r\0\x0B\xC2\xA0");
$dataele[1] = html_entity_decode($dataele[1]);
$dataele[1] = str_replace("&nbsp;", "_", $dataele[1]);
$houseinfo = filter_var($houseinfo, FILTER_SANITIZE_STRING);
$dataele[1] = preg_replace("/&#?[a-z0-9]+;/i", "", $dataele[1]);

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助。

    $string = str_replace(' ', '-', htmlspecialchars_decode($element->plaintext)); 
            $string = preg_replace('/[^A-Za-z0-9-_!@#:$%^&*\/()+={}<>?;, \-]/', '', $string);
            $string = preg_replace('/-+/', ' ', $string);
    echo $string;