This should work if snippets are always formatted as the example, it relies on the new lines:
$t = '
<div class="booking-section">
<h4>Passenger Details</h4>
<p>
<b>Passenger Name:</b><br />
Ms Wendy Walker-hunter
</p>
<p>
<b>Mobile Number:</b><br />
161525961468
</p>
</div>';
preg_match('/Passenger Name:[^\r?\n]+\r?\n([^\r?\n]+)\r?\n/', $t, $name);
preg_match('/Mobile Number:[^\r?\n]+\r?\n([^\r?\n]+)\r?\n/', $t, $phone);
echo trim($name[1]), ' / ', trim($phone[1]);
Outpus is: Ms Wendy Walker-hunter / 161525961468
Same with preg_match_all:
$t = '
<div class="booking-section">
<h4>Passenger Details</h4>
<p>
<b>Passenger Name:</b><br />
Ms Wendy Walker-hunter
</p>
<p>
<b>Mobile Number:</b><br />
161525961468
</p>
</div>
<div class="booking-section">
<h4>Passenger Details</h4>
<p>
<b>Passenger Name:</b><br />
Ms Wendy Walker-hunter 2
</p>
<p>
<b>Mobile Number:</b><br />
161525961468 2
</p>
</div>
<div class="booking-section">
<h4>Passenger Details</h4>
<p>
<b>Passenger Name:</b><br />
Ms Wendy Walker-hunter 3
</p>
<p>
<b>Mobile Number:</b><br />
161525961468 3
</p>
</div>';
preg_match_all('/Passenger Name:[^\r?\n]+\r?\n([^\r?\n]+)\r?\n/', $t, $name);
preg_match_all('/Mobile Number:[^\r?\n]+\r?\n([^\r?\n]+)\r?\n/', $t, $phone);
echo '<pre>';
print_r($name);
print_r($phone);
die;
Output is something like
Array
(
[1] => Array
(
[0] => Ms Wendy Walker-hunter
[1] => Ms Wendy Walker-hunter 2
[2] => Ms Wendy Walker-hunter 3
)
)
Array
(
[1] => Array
(
[0] => 161525961468
[1] => 161525961468 2
[2] => 161525961468 3
)
)
` tag, and the mobile number as the second. Then you can strip out the `` and its contents, and the `
– scrowler Feb 20 '17 at 23:14`. Don't use regex for this.