簡體   English   中英

PHP無法從數組中刪除空格

[英]PHP fails to remove white spaces from a arrays

在我的二維數組中,數組鍵[1]的值為空,鍵名[4],[5],[6],[7],[8]的值假定為空,但顯示為空在數組值中具有String(2)。 好吧,我認為2字符串可能是兩個空格,並且我嘗試了諸如preg_replace,str_replace,trim,array_map,array_filter之類的各種方法,但並未刪除或刪除這兩個空格,因此我檢測到的所有功能均未被檢測認為兩個空格為空白。 除此之外,我還嘗試使用preg_replace,str_replace用其他字符串替換兩個空格。 但這只是數組值和鍵名[1]發生了變化...我不知道為什么2個字符串不能被識別為空格。 另外,我還嘗試在新的php文件中重新鍵入相同的數組並對其進行調試,我將鍵[4],[5],[6],[7],[8]的數組值替換為兩個空格。 但是,該函數能夠檢測到所有都是空白,但是以下數組我在此處發布了兩個空格而不是空格,顯然它們是相同的東西。

 [1]=>
  array(9) {
    [0]=>
    string(5) "Johor"
    [1]=>
    string(0) ""
    [2]=>
    string(10) "KotaTinggi"
    [3]=>
    string(3) "29*"
    [4]=>
    string(2) " "
    [5]=>
    string(2) " "
    [6]=>
    string(2) " "
    [7]=>
    string(2) " "
    [8]=>
    string(2) " "
  }

這是我使用的代碼。 陣列正在從網站刮擦。

<?php
$ch = curl_init("http://apims.doe.gov.my/v2/hour3_2017-01-31.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($page);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$data = array();

$table_rows = $xpath->query('//tr');
foreach ($table_rows as $row => $tr) {
    foreach ($tr->childNodes as $td) {
        $data[$row][] = preg_replace('/\s+/', '', trim($td->nodeValue,"  "));
    }
}
var_dump($data);
 ?>

我也嘗試這樣做,但是所有這些都不起作用。 有專業人士可以幫助我嗎? 或給我一些解決方案。

 $data[$row][] = preg_replace('/\s+/', '', str_replace(' ','',$td->nodeValue));

如果您期望使用字符和數字,則可以使用以下命令(在字符串中保留* ):

preg_replace("/[^a-zA-Z0-9\*]/", "", $td->nodeValue);// this will remove spaces from a proper string also.

要么

$data[$row][] = preg_replace("/[^ \w\*]+/", "", $td->nodeValue);// this works better and does not remove spaces

如果您瀏覽該網站,則該空間實際上是一個&nbsp; 字符串,因此應執行以下操作:

$data[$row][] = preg_replace('/\&nbsp;/', '', trim($td->nodeValue,"  "));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM