2016-12-19 5 views
-2

У меня есть строка, которая содержит:извлечение текста из строки в PHP

navigation pane or double clicking folders in the details pane. 

Navigating the folder structure 
------------------------------- 
symbol will expand or collapse folders in the navigation pane 

Я хочу, чтобы извлечь только текст «Перемещение по структуре папок»

Я попытался с preg_match_all, но не в состоянии справиться начиная точка, которая является новой строкой.

Я также пробовал с strpos, но не смог сделать новую строку в качестве отправной точки.

+0

ли вы попробовать 'strpos'? http://stackoverflow.com/questions/4366730/how-to-check-if-a-string-contains-a-specific-word-in-php – Dan

+0

Я пробовал это, но как обрабатывать новую строку в strpos? –

+0

Итак, какое условие вы считаете, какая строка должна быть извлечена? следующий "' ------------------ '"? –

ответ

1

Используйте комбинацию из strpos, чтобы найти разрывы строк, и substr, чтобы извлечь текст между первым и вторым разрывом строки. Этот текст включает тире (-), поэтому я включил str_replace, чтобы удалить их.

$string = 'navigation pane or double clicking folders in the details pane. 

    Navigating the folder structure 
    ------------------------------- 
    symbol will expand or collapse folders in the navigation pane'; 

$position1 = strpos($string, "\n"); 
$position2 = strpos($string, "\n",$position1); 

$extracted = str_replace("-","",substr($string, $position1, $position2)); 

echo $extracted; 

Это будет печатать нужный текст

+0

Ну, текст «Навигация по структуре папок» не является константой, это может быть что угодно. –

+0

@NaveedRamzan ok я обновил его, похожую логику, как раньше, но немного другую – Dan

+0

Ну, я думаю, я пропустил некоторые подробности. У меня есть файл, в котором у меня есть несколько тексту выше шаблона, поэтому я хочу, чтобы весь текст на основе шаблонов был извлечен. Кстати, код выше не работает. –

0

Использование explode -

$new = explode("\n", $str); 
var_dump($new[2]); 
+0

Nopes. не работает –

+0

работает для меня с указанной строкой. – jitendrapurohit

+1

@jitendrapurohit работал для меня – Dan

Смежные вопросы