Моя головоломка: как PHP newby Я пытаюсь извлечь некоторые данные из строки, используя регулярное выражение, но я не могу найти правильный синтаксис.Извлечение переменных из строки, регулярное выражение?
Содержимое строки соскабливается как html нескольких изображений с веб-сайта, я хочу, чтобы конечный результат был 3 отдельными переменными: «$ Number1», «$ Number2» и «$ Status».
Пример содержания входной строки $ HTML:
<div id="system">
<img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt=".5" height="35" src="/images/numbers/point5.jpg" style="margin-left: -4px" width="26" /><img alt="system statusA" height="35" src="/images/numbers/statusA.jpg" width="37" /><img alt="2" height="35" src="/images/numbers/2.jpg" width="18" /><img alt="1" height="35" src="/images/numbers/1.jpg" width="18" /><img alt=".0" height="35" src="/images/numbers/point0.jpg" style="margin-left: -4px" width="26" />
</div>
возможных значений, которые могут появляться в этой строке являются:
- 0.jpg
- 1.jpg
- 2.jpg
- 3.jpg
- 4.jpg
- 5.jpg
- 6.jpg
- 7.jpg
- 8.jpg
- 9.jpg
- point0.jpg
- point5.jpg
- statusA.jpg
- statusB.jpg
- statusC.jpg
- statusD.jpg
- statusE.jpg
- statusF.jpg
Результат должен быть переменными:
- "Число1" (ХХ.Х) на основе первых двух чисел (0 -9) и .0 или .5
- «Статус» (statusX) на основании состояния
- «Номер2» (XX.X) на основе последних двух чисел (0-9) и .0 или .5
код до сих пор:
$regex = '\balt='(.*?)';
preg_match($regex,$html,$match);
var_dump($match);
echo $match[0];
Вероятно, я должен сделать это в несколько этапов или использовать другую функцию, которая может помочь мне?
Спасибо, это работает. С | в качестве разделителя он возвращает: '1 | 3 | .5 | statusB | 8 | 5 | .0 |'. Но как я могу получить это значение в строку? Мне нужно это, чтобы разбить его на 3 строки, используя взрыв. – JERO79
Решено использовать: foreach ($ xpath-> query ('// img/@ alt') как $ node) { $ input [] = $ node-> nodeValue; } – JERO79