Как я разделяю содержание ниже на отдельные файлы без тегов заполнителя. Я также хотел бы взять текст в тегах заполнителя и разместить их в новом файле содержания.
<div class='placeholder'>The First Chapter</div>
This is some text.
<div class='placeholder'>The Second Chapter</div>
This is some more text.
<div class='placeholder'>Last Chapter</div>
The last chapter.
Спасибо.
ОБНОВЛЕНИЕ:
Я попробовал измененную версию кода MartinodF, но не могу заставить его работать.
$text=file_get_contents("t.txt");
$parts = preg_split('/\n?<div class=\'placeholder\'>(.+?)<\/div>\n/im', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$parts_num = count($parts) / 2;
$titles = $files = array();
for($x = 0; $x < $parts_num - 1; $x++) {
$titles[] = $parts[$x * 2 + 1];
$files[] = $parts[$x * 2 + 1] . "\n" . $parts[$x * 2 + 2];
}
var_dump($titles);
var_dump($files);
echo $titles[1];
ОБНОВЛЕНИЕ 2: Больше не уверенный в отдельном txt файле, но все еще не работает.
$text="<div class='placeholder'>The First Chapter</div>
This is some text.
<div class='placeholder'>The Second Chapter</div>
This is some more text.
<div class='placeholder'>Last Chapter</div>
The last chapter.
";
$parts = preg_split('/\n?<div class=\'placeholder\'>(.+?)<\/div>\n/im', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$parts_num = count($parts) / 2;
$titles = $files = array();
for($x = 0; $x < $parts_num - 1; $x++) {
$titles[] = $parts[$x * 2 + 1];
$files[] = $parts[$x * 2 + 1] . "\n" . $parts[$x * 2 + 2];
}
var_dump($titles);
var_dump($files);
echo $titles[1];
Если я правильно понимаю, что вы делаете (например, извлекаете заголовки и содержимое каждой главы из какого-либо сценария), MartyIX прав, вы можете использовать регулярные выражения:
$parts = preg_split('/\n?<div class=\'placeholder\'>(.+?)<\/div>\n/im', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
$parts_num = count($parts) / 2;
$titles = $files = array();
for($x = 0; $x < $parts_num - 1; $x++) {
$titles[] = $parts[$x * 2 + 1];
$files[] = $parts[$x * 2 + 1] . "\n" . $parts[$x * 2 + 2];
}
var_dump($titles);
var_dump($files);
$ title будет массивом, содержащим все «заголовки», вы можете написать по одному в каждой строке и иметь свой файл «содержимого» (который будет похож на индекс).
$ files, с другой стороны, будут содержать каждую главу (заголовок без тега вокруг него, новую строку, а затем текст), которые вы можете записать в отдельный файл, чтобы ваш текст разбился на главы.
Используйте Xml/HTML парсер, чтобы пройтись по домену и вытащить то, что вам нужно. Есть SimpleXml и DOMDocment, встроенные прямо в php. Или вы можете использовать что-то вроде Zend_Dom_Query или SimpleHTML.
Мне кажется, что можно просто использовать регулярные выражения...
http://www.roscripts.com/PHP_regular_expressions_examples-136.html -- см. конец документа там есть несколько регулярных выражений для HTML.
... но, возможно, вы представили только часть своей задачи.