[英]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
如果您瀏覽該網站,則該空間實際上是一個
字符串,因此應執行以下操作:
$data[$row][] = preg_replace('/\ /', '', trim($td->nodeValue," "));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.