У меня есть часть xml, которую я импортирую, но не в обычном порядке. Это может быть, например:
87 || 1 | # 88 || 2 | # 89 || 2 | 50198 # 41 || 1 | # 3 || 1 | 117 # 20 ||| # 6 | 20 | 1 | # 24 78 # ||| 145 | 5 || # 36 ||| 90 # 37 96 # ||| ||| 29 67 # 26 # 27 ||| ||| ||| # 25
Я создаю такую функцию:
function caratteristiche1($title) {
$title=substr($title,11,1);
return $title;
}
чтобы получить значение # 88, но иногда # 88 не находится в этой позиции, а другие времена # 88 нет.
Я хотел бы использовать функцию, которая будет искать # 88 и давать в результате значение, присутствующее после двух последующих каналов.
Что я могу сделать?
Спасибо вам большое!
Если расстояние между # 88 и двумя трубами одинаково во всех случаях, вы можете использовать регулярное выражение с «положительным взглядом за утверждением», см. http://php.net/manual/en/regexp.reference.assertions.php
Если нет, то вам, вероятно, нужно использовать обычный PHP, чтобы найти # 88, затем взять оставшуюся подстроку и искать два канала.
РЕДАКТИРОВАТЬ после вашего ответа «НЕТ»:
В этом случае я бы не стал делать это с RegEx.
Попробуйте что-то в этом роде (возможно, не на 100% точный синтаксис):
$pos88 = strpos('#88', $string);
newStr = substr($string, $pos88);
$posPipes = strpos('||', $newStr);
// ... and so forth ...
Других решений пока нет …