1. ruboss007 - 21 Ноября, 2014 - 02:14:54 - перейти к сообщению
Всем привет, есть ссылка, в которой находиться изображение ( вот пример как выглядит на скрине http://gyazo[dot]com/89243a377c82a8a[dot][dot][dot]86d5584338ae552e ), его нужно заменить на ключевое слово, делаю это с помощью preg_replace, c вот таким шаблоном
Но работает не верно, после выполнения функции в тексте, ссылки, которые шли до изображения стираются тоже... Кто знает почему так происходит?Update:
Сделал через simple dom html
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- private function hideImg($str){
- $link = null;
- $replacementi = "и_м_3192";
- $pattern = "/<a.*?>.*?(<img.*?>)<\/a>/"; //поиск картинок в ссылках
- //var_dump(htmlentities($pattern));
- preg_match_all($pattern,$str,$out);
- if(count($out[1]) > 0){
- $img = $out[1];
- }
- if($img != null){
- $search = str_get_html($str);
- $ael = $search->find("a");
- $cnt = 0;
- $aArr = array();
- for($i=0;$i<count($ael);$i++){
- $ael2 = $search->find("a",$i);
- if($ael2 != null && $ael2){
- $iel = $ael2->find("img",0);
- if($iel != null & $iel){
- $aArr[] = $ael2->outertext;
- $cnt++;
- }
- }
- }
- for($i=0; $i<$cnt; $i++){
- $pattern = $aArr[$i];
- $str = str_replace($aArr[$i],$replacementi,$str);
- //$str = preg_replace($pattern,$replacementi,$str);
- }
- $arr["str"] = $str;
- $arr["arr"] = $img;
- $arr["count"] = $cnt;
- $arr["mask"] = $replacementi;
- return $arr;
- }
- else
- return false;
- }