2010-11-30 100 views
0

在php中,什麼是函數只顯示長度大於50個字符的字符串,截斷它不顯示超過130個字符並將其限制爲一個結果?PHP函數 - 自定義字符串長度函數

所以例如說,我在結果集中有30行,但我只想顯示具有這些參數的最新行。如果最新的行有25個字符,它不應該顯示。它應該只顯示最新的字符串長度爲50或更多的字符。

+0

你給我們的參數,但是你忘了的樣本,以表明您是如何獲取數據。 – 2010-11-30 03:54:04

+0

Ignactio指出,我們需要知道您的數據來自哪裏。如果它來自數據庫,則應該在查詢中執行所有操作,而不是在PHP中執行。 – 2010-11-30 03:57:58

+0

它來自數據庫。我只想顯示只有一個結果,並且一個結果只能有超過50的字符串長度。問題是因爲我沒有設置限制爲1在MySQL查詢它顯示所有結果。我應該創建一個if語句來僅顯示包含50個或更多字符的字符串長度的行嗎? – mwimwi76 2010-11-30 04:05:10

回答

0

這樣的事情應該只是確保你抓住你的數據首先排序最新的項目。 break語句將確保在找到符合條件的第一個結果後終止循環...

foreach($array_returned_from_query as $row) 
{ 
    if(strlen($row) > 50) 
    { 
     echo substr($row, 0, 130); 
     break; 
    } 
} 
1

使用SQL查詢。爲了找到最新的你想要的最大值,可以是auto_increment主鍵(ill叫它id)或者創建行時的日期/時間(比如time_created)。

所以我假設表:ID(INT),stringVal(字符串,字符(),VARCHAR(),等等)

SELECT MAX(id), SUBSTRING(stringVal, 1, 130) 
FROM yourTable 
WHERE LENGTH(stringVal) > 30 

更換ID與時間字段,如果你不得不這樣做。如果沒有其中一個,你會很難找到最新的,但你總是可以任意選擇一行。

- 編輯 - 使用PHP MySQL的函數運行上面的查詢,並獲取所需的輸出

$sql = "SELECT MAX(id), SUBSTRING(stringVal, 1, 130) FROM yourTable WHERE LENGTH(stringVal) > 30"; 
$r = mysql_query($sql, $conn); //im hoping $conn or something like it is already set up 
$row = mysql_fetch_assoc($r); 
$desiredString = $row['stringVal'];