2014-10-16 4 views
-2

나는 학교에서이 과제를 내고 싶지만 붙어 있어야합니다 ... 나는 스크립트를 만들 필요가 있고 좋은 링크로 이미지를 얻어야합니다. 빈 배열 만 가져옵니다. 이걸 더 잘 만들도록 도와주세요! 이것은 imagecode의 일부입니다빈 배열은 링크 여야합니다

<?php 
    header('Content-Type: text/html; charset=utf-8'); 
    $url = "http://www.asaphshop.nl/epages/asaphnl.sf/nl_NL/?ObjectPath=/Shops/asaphnl/Products/80203122"; 
    $htmlcode = file_get_contents($url); 
    $pattern = '#class="noscript">.*(<img.*>).*</div>#isU'; 
    preg_match_all($pattern, $htmlcode, $matches); 
    //print_r ($matches); 
    $image = ($matches[0]); 
    print_r ($image); 
    ?> 

: 이 코드 당신이이 있다면

<div id="ProductImages" class="noscript"> 
    <ul> 

     <li> 
     <a href="/WebRoot/products/8020/80203122/bilder/80203122.jpg"> 
      <img 
      itemprop="image" 
      alt="Jesus Remember Me - Taize Songs (2CD)" 
      src="/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg" 
      data-src-xs="/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg" 
      data-src-s="/WebRoot/products/8020/80203122/bilder/80203122_s.jpg" 

      data-src-m="/WebRoot/products/8020/80203122/bilder/80203122_m.jpg" 

      data-src-l="/WebRoot/products/8020/80203122/bilder/80203122.jpg" 
     /> 
     </a> 
     </li> 

    </ul> 
    </div> 

데이터-SRC-1의 코드는 https://www.asaphshop.nl

답변

0

의 뒷면에 있어야합니다 디버거를 사용했다면 실제로는 빈 배열이 아니라 ['0'] 키 아래에 하나의 값을 가진 배열을 포함하는 배열이 있다는 것을 알 수 있습니다.

""class=\"noscript\">\n <ul>\n \n  \n  \n  \n   \n  \n  \n   \n  \n  \n  <li>\n  <a href=\"/WebRoot/products/8020/80203122/bilder/80203122.jpg\">\n   <img\n   itemprop=\"image\"\n   alt=\"Jesus Remember Me - Taize Songs (2CD)\"\n   src=\"/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg\"\n   data-src-xs=\"/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg\"\n   data-src-s=\"/WebRoot/products/8020/80203122/bilder/80203122_s.jpg\"\n   \n   data-src-m=\"/WebRoot/products/8020/80203122/bilder/80203122_m.jpg\"\n   \n   data-src-l=\"/WebRoot/products/8020/80203122/bilder/80203122.jpg\"\n   />\n  </a>\n  </li>\n \n \n </ul>\n </div>"" 

아마도 여러분이 말할 수 있듯이 정규 표현식에 문제가 있습니다. $pattern. HTML을 정규식으로 파싱하는 것은 일반적으로 나쁜 생각입니다. 정확히 당신이 성취하고자하는 것은 무엇입니까? 그리고 여기에서도 같은 질문을하는 것이 5 번입니까?

UPDATE : <img\s[^>]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>을 :

당신은 이미지가이 정규식을 사용하여 얻을 필요가있는 경우

. 이를 통해 페이지의 모든 이미지에 대한 src 태그의 값을 캡처 한 다음이를 사용하여 자신의 이미지 태그를 만들 수 있습니다. 그래서 같이 :

$htmlcode = file_get_contents($url); 
$pattern = "/<img\s[^>]*?src\s*=\s*['\"]([^'\"]*?)['\"][^>]*?>/"; 
preg_match_all($pattern, $htmlcode, $matches); 

$matches[0] 배열은 모든 이미지 태그를 포함하고의 (16)는 실제로 존재한다. $matches[1] 배열에는 이미지의 src 특성에있는 모든 값이 들어 있습니다. 당신이 원하는 것을 사용할 수 있습니다.

+0

고마워요! 하지만 여전히 ... 나는 이것에 관해 더 이상 오지 않는다. 코드에 대해 더 구체적으로 설명 할 수 있는가? 그리고 그것은 학교를위한 과제입니다. 내가 성취하고자하는 것은 asaphshop.nl이라는 사이트에서 정보를 얻는 스크립트를 만들어야한다는 것입니다. 나는 이미 제목과 작가 및 물건과 같은 기본 정보를 얻었습니다. 나는 csv 파일을 읽음으로써 그것을했다. 하지만 지금 나는 이미지와 설명 그리고 언어를 할 필요가있다. 나는 정규 표현식으로 그것을 할 필요가있다. 그리고 저는 같은 질문을하는 5 번째 시간이 아닙니다. 하지만 미안하다고 생각한다면. – bananaman

+0

@bananaman 그래서 regex를 사용하여 페이지에서 이미지를 가져오고 싶습니까? – Alternatex

+0

네, 나중에 여러 장의 사진과 호환되어야합니다. 왜냐하면 나중에 데이터베이스에 넣어야하기 때문입니다. – bananaman