Как получить URL изображения только из целого & lt; img & gt; тег в следующем сценарии?

У меня есть ассоциативный массив под названием $data следующее:

Array
(
[0] => Array
(
[student_image] => <img src="http://34.144.40.142/file/pic/photo/2015/02/02ff1a23db112db834b8f41748242bcb_240.png"  alt=""  width="180"  height="160"  class="photo_holder" />
)

[1] => Array
(
[student_image] => <img src="http://34.144.40.142/theme/frontend/foxplus/style/default/image/document/docx.png"  alt="" />
)
[2] => Array
(
[student_image] => <img src="http://34.144.40.142/file/pic/photo/2015/02/da46580276da5c3a31b75e8b31d35ddf_240.png"  alt=""  width="180"  height="160"  class="photo_holder" />
)
)

Фактический массив очень большой, здесь я поместил только необходимые данные из массива.
Теперь то, что я хочу, это для каждого элемента массива ключ [student_image] Я должен получить только URL изображения, без тега imag и любых других данных. Короче говоря, я хочу следующий вывод массива выше:

Array
(
[0] => Array
(
[student_image] => http://34.144.40.142/file/pic/photo/2015/02/02ff1a23db112db834b8f41748242bcb_240.png
)

[1] => Array
(
[student_image] => http://34.144.40.142/theme/frontend/foxplus/style/default/image/document/docx.png")
[2] => Array
(
[student_image] => http://34.144.40.142/file/pic/photo/2015/02/da46580276da5c3a31b75e8b31d35ddf_240.png
)
)

Как мне добиться этого наилучшим и оптимальным способом для всех элементов массива? $data?

Заранее спасибо.

0

Решение

попробуйте что-то вроде этого:

   //$data is your array
$data = array_map(function($elem){
//$elem is each elemet  of you array
return array('student_image' => preg_replace('/<img\ssrc="([^"]+)".+$/','$1',$elem['student_image']));
},$data);
0

Другие решения

Вы можете использовать регулярное выражение для извлечения URL

// $data is your existing array with img tags
$urls = array();
foreach ($data as $key => $value){
foreach ($value as $key1 => $img) {
preg_match('/<img[^>]*src="([^"]*)"[^>]*\/>/', $img, $srcmatch);
$urls[$key][$key1] = $srcmatch[1];
}
}
// now $urls is having only image url and have same structure of $data,
// You may replace $urls with $data
var_dump($urls);

Надеюсь это поможет.

0

По вопросам рекламы [email protected]