function extraerSRC($cadena) {
$arrImg = array();
preg_match_all('/<img[^>]+>/i',$cadena, $imgTags);
for ($i = 0; $i < count($imgTags[0]); $i++) {
preg_match('/src="([^"]+)/i',$imgTags[0][$i], $imgage);
$arrImg[] = str_ireplace( 'src="', '', $imgage[0]);
}
return $arrImg;
}
Por ejemplo para cambiar todas las imágenes de una cadena a base64 sería:
function extraerSRC($cadena) {
$foto = '';
$arrImg = array();
preg_match_all('/<img[^>]+>/i',$cadena, $imgTags);
for ($i = 0; $i < count($imgTags[0]); $i++) {
preg_match('/src="([^"]+)/i',$imgTags[0][$i], $imgage);
$arrImg[] = str_ireplace( 'src="', '', $imgage[0]);
}
// convertir cada imagen a base64 y reemplazar
foreach ($arrImg as $clave=>$valor) {
$path = $valor;
$type = pathinfo($path, PATHINFO_EXTENSION);
// $data = file_get_contents($path);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$data = curl_exec($ch);
curl_close($ch);
$ImgBase64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
$cadena = str_replace($valor, $ImgBase64,$cadena);
}
return($cadena);
}
No hay comentarios:
Publicar un comentario