2012-04-05 152 views
1

之間獲取內容好,我有一個很大的文件,還有一些內容我需要的是seprated,該內容位於 - - - - - - - - - - [ عنوان ]- - - - - - - - - - [ انتهاى عنوان ]之間,是有沒有辦法跟reqular表達和PHP來獲取這些內容?正則表達式兩線

完全格式是這樣的:

- - - - - - - - - - [ عنوان ] 
في حد اللواط 
- - - - - - - - - - [ انتهاى عنوان ] 

ومنها قوله سبحانه : ولوطا إذ قال لقومه : أتأتون الفاحشة وأنتم تبصرون أئنكم لتأتون 
الرجال شهوة من دون النساء بل أنتم قوم تجهلون ، فما كان جواب قومه إلا أن قالوا أخرجوا 

- - - - - - - - - - [ عنوان ] 
في حرمة اللواط 
- - - - - - - - - - [ انتهاى عنوان ] 
في حرمة اللواط 
ثم إنه لا شك في حرمة اللواط بل إن حرمته من ضروريات الدين ودل 
عليها الكتاب المبين (1) وسنة سيد المرسلين وأهل بيته الطاهرين صلوات الله 

並繼續...謝謝你

+0

http://cn.php.net/manual/en/function.preg-match.php#95828希望會幫助你 – steve 2012-04-05 09:15:54

回答

2

使用此代碼,

$lines = preg_split("/[\r\n]+/u", $str, -1, PREG_SPLIT_NO_EMPTY); 
$data = array(); 
$start = ' 
    - - - - - - - - - - [ عنوان ] 
    '; 
$end = ' 
    - - - - - - - - - - [ انتهاى عنوان ]'; 
$start = trim($start); 
$end = trim($end); 
$process = false; 
foreach($lines as $line){ 
    if(mb_strpos($line, $start, 0, "utf-8")!==false){ 
     $process=true; 
    }elseif(mb_strpos($line, $end, 0, "utf-8")!==false){ 
     $process=false; 
    }elseif($process){ 
     $data[] = $line; 
    } 
} 
print_r($data); 

注:

    由於LTR d。
  1. 方向很難輸入確切的短語。所以我使用修剪技術。

Sample

+0

TNX,但它返回空數組,居然有以許多行這樣的文件 – 2012-04-05 09:02:27

+0

@HellLord然後張貼您的示例文件的部分請 – 2012-04-05 09:06:51

+0

我想也許這應該是一個編碼問題在這裏,我的文件是用unicode編碼格式化的,語言是正確的左語言,是好的使用原始文本還是應該更改格式?我真的很困惑:(( – 2012-04-05 09:16:45