PHP переменная между двумя строковыми позициями - PullRequest
1 голос
/ 11 апреля 2020

Я пытался искать на форумах, но все еще не уверен, как это сделать.

Я извлекаю веб-ссылку с веб-страницы, и начало и конец всегда одинаковы, но есть переменная, которую я хочу get.

Например, http://www.example.com/images/ $ VARIABLE / image.jpg

$ position1 = http://www.example.com/images/

$ position2 = image.jpg

Мне нужно получить переменную. На веб-странице $ position 2 указан несколько раз (image.jpg)

Я пробовал все виды вещей, и пока ничего не работает.

Спасибо

$begin = strpos($page, $position1) + strlen($position1); 
$end   = strpos($page, $position2);
$ImageName = substr($page, $begin, ($end - $begin));

1 Ответ

2 голосов
/ 11 апреля 2020

Я думаю, что проблема в том, что если image.jpg встречается до http://www.example.com/images/, то просто попытка использовать ваш код не будет работать.

Небольшое исправление - начать поиск $position2, где вы нашли первую часть, добавив начальную точку в функцию strpos() ...

$begin = strpos($page, $position1) + strlen($position1);
$end   = strpos($page, $position2, $begin);
$ImageName = substr($page, $begin, ($end - $begin) - 1);

с помощью

$page = "some test image.jpg some more text  
blurb that is in the middle http://www.example.com/images/VARIABLE/image.jpg 
some even more text image.jpg";

код находит

VARIABLE

Регулярное выражение, предложенное @ user3783243, также может работать, но вам также может понадобиться ограничение на длину параметра.

...