私は、1つの文字列内に一連の表があることを確認します。また、文字列を表に分割する必要があります。私はあなたがテキストを分割し、テーブルを分離することができると仮定します。
<?php
$s = <<<EOSTR
First table
| | {{Категория}} | | {{Стоимость курсов}} | {{Стоимость учебного набора}} |
| 1 | Взрослый | 1 уровень = 50ч | 1~500 лей | 15 евро |
| 2 | Студент, Мастерант, Докторант | 1 уровень = 50ч | 1~000 лей | 15 евро |
| 3 | Ученик | 1 уровень = 50ч | 1~000 лей | 15 евро |
| 4 | Пенсионер | 1 уровень = 50ч | 1~000 лей | 15 евро |
text text text text text text
Second table:
| | {{Вид курсов}} | | {{Стоимость курсов}}| {{Стоимость учебного набора}} |
| 1 | dfgdfgdfg | 1 модуль | 500 лей | 0 |
|^|^| 2 модуля | 900 лей | 0 |
|^|^| 4 модуля | 1~500 лей | 0 |
| 2 | fgdfgdfg | 12ч | 800 лей | 0 |
| 3 | dfgdfgdfgdfg| 12ч | 900 лей | 0 |
|^|^| Предварительный тест | 400 лей | 0 |
text text text text text text
EOSTR;
$a = null;
$a = preg_split('/^(?:.(?<!\|))*$/xm', $s);
var_dump($a);
ただ、ここのような
:
http://ideone.com/VCt4f(
this questionを使用)。これはあなたにこれを与える:
array(5) {
[0]=>
string(0) ""
[1]=>
string(506) "
| | {{Категория}} | | {{Стоимость курсов}} | {{Стоимость учебного набора}} |
| 1 | Взрослый | 1 уровень = 50ч | 1~500 лей | 15 евро |
| 2 | Студент, Мастерант, Докторант | 1 уровень = 50ч | 1~000 лей | 15 евро |
| 3 | Ученик | 1 уровень = 50ч | 1~000 лей | 15 евро |
| 4 | Пенсионер | 1 уровень = 50ч | 1~000 лей | 15 евро |
"
[2]=>
string(1) "
"
[3]=>
string(466) "
| | {{Вид курсов}} | | {{Стоимость курсов}}| {{Стоимость учебного набора}} |
| 1 | dfgdfgdfg | 1 модуль | 500 лей | 0 |
|^|^| 2 модуля | 900 лей | 0 |
|^|^| 4 модуля | 1~500 лей | 0 |
| 2 | fgdfgdfg | 12ч | 800 лей | 0 |
| 3 | dfgdfgdfgdfg| 12ч | 900 лей | 0 |
|^|^| Предварительный тест | 400 лей | 0 |
"
[4]=>
string(0) ""
}
あなたは単になぜあなたはちょうど言う、などの既存/正気の形式を使用していない
// $a = preg_split...
foreach ($a as $table) {
if (!strlen(trim($table)))
continue;
$rows = preg_split('/\n/', $table);
foreach ($rows as $row) {
if (!strlen(trim($row)))
continue;
$columns = preg_split('/\|/', $row);
// work with $columns array
}
}
で列にそれらを分割することができ抽出テーブルを完了したら、 JSON? –
'\ |。+'はパイプ( '|')にマッチし、任意の数の任意の文字( '。+')にマッチします。このフォーマットは – Znarkus
@MattBall答えはThx –