簡體   English   中英

從回顯中的字符串中刪除空格和BR

[英]Removing empty spaces and BR from string in echo

我得到了以下代碼,但此刻它生成了一個結果字符串,但有大約40多個空白空間。

$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$levels = JAccess::getAuthorisedViewLevels($user->id);
foreach($levels as $key => $level)
{
  $query  = 'SELECT title FROM #__pf_projects';
  $query .= ' WHERE access = ' . $level . " AND TRIM(title) != ''";
  $db->setQuery($query);
  $projectlist = $db->loadResult($query).'<br>';
  echo $projectlist;
}

起初我以為array_filter()在這里會很好,但是正如PatrickQ指出的那樣,它是一個字符串,因此數組過濾器將無法工作。 然后,我根據“不要驚慌”的答案改編了代碼。 您可以在上面看到經過修改的代碼。

現在返回這樣的列表。

<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
http://www.domain1.com
<br>
<br>
<br>
<br>
http://www.domain5.com
http://www.domain23.com
http://www.domain65.com
http://www.domain213.com
<br>
<br>
<br>
<br>
<br>
<br>

因此,如何使代碼適應這樣的列表:

http://www.domain1.com
http://www.domain5.com
http://www.domain23.com
http://www.domain65.com
http://www.domain213.com

當您更改<br>進入,然后在列表變成,,,,,,,,,,,http,,,,,,httphttphttphttp,,,,,,, <=我寫下來有點短。

如果array_filter沒有過濾出空值,那么它們可能並不是真正的空值。 假設那里有某種空格,而不是null或空字符串,那么您可以修改查詢以修剪標題,並且僅在仍有東西的地方返回結果。

SELECT title FROM #__pf_projects
WHERE access = ? AND title IS NOT NULL AND TRIM (title) != ''

或者,根據您原始的PHP代碼:

$query  = 'SELECT title FROM #__pf_projects';
$query .= ' WHERE access = ' . $level . " AND TITLE IS NOT NULL AND TRIM(title) != ''";

但是,最好避免像這樣將變量連接到SQL中。 如果您使用的框架具有某種利用預備語句的方法,則應改用該方法。


如果這仍然不起作用,我真的不知道該查詢還有什么嘗試,但是您應該能夠只檢查PHP中的空結果,並且僅在有需要顯示的情況下進行回顯。

$projectlist = $db->loadResult($query);
if (trim($projectlist)) echo $projectlist.'<br>';

首先,如果未傳遞回調,則array_filter將僅刪除虛假元素。 空格為空的字符串計算為true,因此不會從數組中刪除。 您可以執行以下操作:

$filteredArray = array_filter($projectList, function($val) {
    return trim($val);
});

print_r($filteredArray);

另外,您無法回顯數組。 您可以使用print_r或var_dump。

多虧大家的回答,我終於找到了一種獲取結果的方法。 我的方式不一定適合所有人。 在我這方面有更多知識的人可能會做不同的事情。

本質上,我的答案是在div內輸出每個結果的整個字符串。 這將創建很多空的div,但這些不是由HTML生成的。 但是它們確實出現在檢查器中。

我在腳本中使用的最終代碼。

$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$levels = JAccess::getAuthorisedViewLevels($user->id);
foreach($levels as $key => $level)
{
  $query  = 'SELECT title FROM #__pf_projects';
  $query .= ' WHERE access = ' . $level;
  $db->setQuery($query);
  $projectlist = '<div class="project">'.$db->loadResult($query).'</div>';
  echo $projectlist;
}

現在給我這樣的清單:

http://www.domain1.com
http://www.domain5.com
http://www.domain23.com
http://www.domain65.com
http://www.domain213.com

暫無
暫無

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

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