2016-04-26 13 views
0

我正在使用preg_split將字符串拆分爲單詞。php preg_split找到字符串中的所有單詞不起作用

但是,它不適用於從mysql文本列中提取的特定字符串。

如果我手動將字符串分配給一個變量,它將正常工作,但不是從數據庫中提取字符串時。

下面是簡單的代碼我使用:

//The failing string. When manually assigned like this it works correctly 

$string = "<p><strong>Iden is lesz lehetoseg a foproba és a koncert napjan ebedet kerni a MUPA-ban. Ára 1000-1200 Ft körül várható. Azoknak, akik még nem jártak a MUPA-ban ingyenes bejarasi lehetoseget biztositunk. Tovabba segitunk a pesti szallas megszervezeseben is, ha igenyt tartotok ra.</strong></p>"; 

$string = strip_tags(trim($string)); 

$words = preg_split('/\PL+/u', $string, null, PREG_SPLIT_NO_EMPTY); 

這裏是什麼使preg_split返回時呼籲從數據庫字符串:

array(1) { [0]=> string(269) "Iden is lesz lehetoseg a foproba és a koncert napjan ebedet kerni a MUPA-ban. Ára 1000-1200 Ft körül várható. Azoknak, akik még nem jártak a MUPA-ban ingyenes bejarasi lehetoseget biztositunk. Tovabba segitunk a pesti szallas megszervezeseben is, ha igenyt tartotok ra." } 

有誰知道是什麼原因造成使preg_split到這個字符串失敗?

感謝

+0

它是如何失敗的,到底是什麼? –

+0

@mistermartin - 請參閱有關它返回的問題。它返回整個字符串而不是分割它 –

+0

[該代碼看起來正在工作](http://ideone.com/UhokFC)。也許'-1'比'null'好?嘗試'$ words = preg_split('/ \ PL +/u',$ string,-1,PREG_SPLIT_NO_EMPTY);' –

回答

1

我從數據庫字符串測試你的代碼,併發生了同樣的錯誤,改變正規表示法,你就會有解決方案。使用這個表達式:

$words = preg_split('/[\s]/', $string, null, PREG_SPLIT_NO_EMPTY); 


//var_dump result 

array(42) { 
    [0]=> 
    string(4) "Iden" 
    [1]=> 
    string(2) "is" 
    [2]=> 
    string(4) "lesz" 
    [3]=> 
    string(9) "lehetoseg" 
... 
} 

UPDATE: 修改器/ U是UTF-8,也許你的數據庫是不是UTF8,所以表達沒有工作

0

你並不需要一個正則表達式這一點,explode將做的工作:

$string = "<p><strong>Iden is lesz lehetoseg a foproba és a koncert napjan ebedet kerni a MUPA-ban. Ára 1000-1200 Ft körül várható. Azoknak, akik még nem jártak a MUPA-ban ingyenes bejarasi lehetoseget biztositunk. Tovabba segitunk a pesti szallas megszervezeseben is, ha igenyt tartotok ra.</strong></p>"; 
$string = strip_tags(trim($string)); 
$words = explode(" ", $string); 
print_r($words); 

輸出:

Array 
(
    [0] => Iden 
    [1] => is 
    [2] => lesz 
    [3] => lehetoseg 
    [4] => a 
    [5] => foproba 
    [6] => és 
    [7] => a 
    [8] => koncert 
... 

Ideone Demo

相關問題