Разделите «MediaBox [2.8347 2.83467 609.449 856.063]» на 4 номера (или получите размер PDF) - PullRequest
0 голосов
/ 06 декабря 2018

Пожалуйста, помогите с обычным php.

Мне нужно Найти эту последовательность в тексте:

MediaBox[2.8347 2.83467 609.449 856.063]

и затем разбить на 4 числа (2.8347,2.83467,609.449,856.063)

Также строки могут быть

CropBox[2.8347 2.83467 609.449 856.063]

и так далее ...

Спасибо !!

Ps Также я нашел этот код, чтобы получить последние 2 цифры: в тексте могут быть любые другие

[xxxx yyyy zzzz oooo]

но мне нужны только такие: CropBox [xxxx xxxx xxxx xxxx]

   $stream = new SplFileObject($path);

$result = false;

while (!$stream->eof()) {
    if (preg_match("/".$box."\[[0-9]{1,}.[0-9]{1,} [0-9]{1,}.[0-9]{1,} ([0-9]{1,}.[0-9]{1,}) ([0-9]{1,}.[0-9]{1,})\]/", $stream->fgets(), $matches)) {
        $result["w"]  = ptToMM($matches[1]);
        $result["h"] = ptToMM($matches[2]);
        break;
    }
}

$stream = null;

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете попробовать это.

  \d+\.\d+

Пояснение

  • \d+ - будет соответствовать одной или нескольким цифрам.
  • \. - будет соответствовать ..
  • \d+ - будет соответствовать одной или нескольким цифрам.

Демо

$re = '/\d+\.\d+/m';
$str = 'MediaBox[2.8347 2.83467 609.449 856.063]';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...