Intereting Posts
Добавление полей ввода в форму при выборе выпадающего меню Обновление запроса с помощью PDO и MySQL Лучшие практики в PHP и MySQL с международными строками Как найти месяц нет, имя из номера недели, используя php Как переносить устаревший веб-сайт Java / J2EE на современный язык сценариев (PHP, Python / Django и т. Д.)? Объедините 2 массива в третий массив с непостоянными уникальными ключами из одного массива Базовый PHP API-интерфейс Vimeo Advanced API Настройка чистых URL-адресов, таких как CodeIgniter Развертывание области в конструкторах PHP-класса Проводка массива с curl_setopt Отрицательный индекс массива в PHP Как использовать PHP для передачи данных формы HTML в базу данных MYSQL и возврата данных в браузер Почему этот код pdo :: mysql разбивается на окна? Установить имя файла с помощью введенной пользователем переменной в PHP Многомерное хранилище массивов CodeIgniter в одной колонке базы данных mysql

как получить ссылку из тега img

$img = '<img src="http://some-img-link" alt="some-img-alt"/>'; $src = preg_match('/<img src=\"(.*?)\">/', $img); echo $src; 

Я хочу получить значение src из тега img и, возможно, значение alt

Предполагая, что вы всегда получаете img html, как вы показали в вопросе.

Теперь в регулярном выражении вы указали свое высказывание, что после атрибута src ему задан закрытый тег для img. Но в строке есть атрибут alt. Поэтому вам также нужно заботиться об этом.

 /<img src=\"(.*?)\".*\/>/ 

И если вы собираетесь проверить alt также регулярное выражение.

 /<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/ 

Также вы просто проверяете, соответствует ли он или нет. Если вам нужно получить матчи, вам нужно предоставить третий параметр preg_match, который будет заполняться совпадениями.

 $img = '<img src="http://some-img-link" alt="some-img-alt"/>'; $src = preg_match('/<img src=\"(.*?)\"\s*alt=\"(.*?)\"\/>/', $img, $results); var_dump($results); 

Примечание. Вышеупомянутое регулярное выражение не является таким общим, если вы можете предоставить строки img, которые произойдут, обеспечит более сильное регулярное выражение.

  function scrapeImage($text) { $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/'; preg_match($pattern, $text, $link); $link = $link[1]; $link = urldecode($link); return $link; } 

Протестированный код:

 $ input='<img src= ”http://www.site.com/file.png” > '; preg_match(“<img.*?src=[\"\"'](?<url>.*?)[\"\"'].*?>”,$input,$output); echo $output; // output = http://www.site.com/file/png 

Как извлечь img src, title и alt из html с помощью php?

См. Первый ответ на этот пост.

Вы собираетесь использовать preg_match, совсем немного иначе.

Попробуйте этот код:

 <?php $doc = new DOMDocument(); $doc->loadHTML('<img src="" />'); $imageTags = $doc->getElementsByTagName('img'); foreach($imageTags as $tag) { echo $tag->getAttribute('src'); } ?> 

Также вы можете использовать эту библиотеку: SimpleHtmlDom

 <?php $html = new simple_html_dom(); $html->load('<html><body><img src="image/profile.jpg" alt="profile image" /></body></html>'); $imgs = $html->find('img'); foreach($imgs as $img) print($img->src); ?> 
 preg_match('/<img src=\("|')([^\"]+)\("|')[^\>]?>/', $img); 

У вас уже есть достаточно хорошие ответы выше, но вот еще один код (более универсальный):

 function retrieve_img_src($img) { if (preg_match('/<img(\s+?)([^>]*?)src=(\"|\')([^>\\3]*?)\\3([^>]*?)>/is', $img, $m) && isset($m[4])) return $m[4]; return false; } 

Вы можете использовать JQuery для получения атрибутов src и alt

включить jquery в заголовке

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script> 

// HTML

// для получения атрибутов src и alt

 <script type='text/javascript'> // src attribute of first image with id =imgId var src1= $('#imgId1').attr('src'); var alt1= $('#imgId1').attr('alt'); var src2= $('#imgId2').attr('src'); var alt2= $('#imgId2').attr('alt'); </script>