从抓取的文本中删除白色 space

Remove white space from scraped text

$url = 'MyUrl';

$contents = file_get_contents($url); 

function scrape_between($data, $start, $end){
    $data = stristr($data, $start); 
    $data = substr($data, strlen($start));
    $stop = stripos($data, $end);
    $data = substr($data, 0, $stop);
    return $data;
}

$svetaines_turinys = trim(scrape_between($contents, "<table border=\"0\" cellspacing=\"0\">", "</table>"));

$fp = fopen("autogidas.php", "w+"); 

fwrite ($fp, "$svetaines_turinys"); 

fclose ($fp); 

$fh = fopen("autogidas.php", 'r') or die("negalima atidaryti");

while(! feof($fh)) {

    $visa_data1 = fgets($fh);

    $visa_data = trim($visa_data1);

    $pavadinimas = trim(scrape_between($visa_data, "<span class=\"ttitle2\">", "</span>"));
    $metai = trim(scrape_between($visa_data, "<span class=\"ttitle1\">", "</span>"));
    $kaina = trim(scrape_between($visa_data, "<span class=\"ttitle1\" style='float: left;'>", "<br /><span class=\"grey\">"));

    echo "$pavadinimas<br> $metai <br> $kaina . <br><br>";
}

fclose($fh);

输出工作正常,但问题是输出有很多空闲 space,我尝试使用 trim(),但没有解决问题。

你可以只使用正则表达式来完成这个任务,像这样的东西会完美地工作:

$metai = preg_replace('/\s+/', ' ',scrape_between($visa_data, "<span class=\"ttitle1\">", "</span>"));

对每个有相同问题的变量都这样做。

如果你的意思是你想删除多个 space 而只留下一个 space 你可以像这样使用 str_replace()

function scrape_between($data, $start, $end){
    $data = stristr($data, $start); 
    $data = substr($data, strlen($start));
    $stop = stripos($data, $end);
    $data = substr($data, 0, $stop);
    return str_replace('  ', ' ', $data);
}