Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь с регуляркой
Форумы портала PHP.SU » PHP » Регулярные выражения » Нужна помощь с регуляркой

Страниц (2): [1] 2 »
 

1. Coder1994 - 27 Июня, 2011 - 17:20:49 - перейти к сообщению
вот есть строка
<span class="vid-size">96.3 MB</span><a href="http://site.com/video.mp4" onclick="pageTracker._trackEvent('Video Page','Click Download Original');" id="123456">Download AVI Format</a></div>
Как мне отсюда взять Download AVI Format
Написал регулярку
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all( '/(.*)<\/span><a href="(.*)" onclick="(.*)" id="(.*)">.*/isU', $link[1][$i] , $size );

Но когда переписываю её чтобы взять Download AVI Format, она не пашет, в чём проблема?
2. Саныч - 27 Июня, 2011 - 18:09:54 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<a[^>]>(.*?)<\/a>#isU
3. Coder1994 - 27 Июня, 2011 - 18:14:36 - перейти к сообщению
Саныч пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<a[^>]>(.*?)<\/a>#isU

не работает.
Можете модифицировать мою регулярку?
Чтобы $size[5][0], возвращала Download AVI Format
4. Slavenin - 27 Июня, 2011 - 18:35:31 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<a\s[*]>(.*?)<\/a>*#
5. Coder1994 - 28 Июня, 2011 - 14:25:07 - перейти к сообщению
Slavenin пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. #<a\s[*]>(.*?)<\/a>*#

тоже ничего не матчит.
preg_match_all( '/(.*)<\/span><a href="(.*)" onclick="(.*)" id="(.*)">.*/isU', $link[1][$i] , $size );
вот моя регулярка всё парсит, но когда я её дописываю до:
preg_match_all( '/(.*)<\/span><a href="(.*)" onclick="(.*)" id="(.*)">.*<\/a>/isU', $link[1][$i] , $size );
Она перестаёт парсить.
В чём проблема?
6. vsll - 28 Июня, 2011 - 14:37:07 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match_all( '/(.*)<\/span><a href="(.*)" onclick="(.*)" id="(.*)">([^<]*)<\/a>/isU', $link[1][$i] , $size );
7. Coder1994 - 28 Июня, 2011 - 14:48:32 - перейти к сообщению
Vasiliya пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match_all( '/(.*)<\/span><a href="(.*)" onclick="(.*)" id="(.*)">([^<]*)<\/a>/isU', $link[1][$i] , $size );

вот что var_dump вернул
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(6) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(0) { } [5]=> array(0) { } } []
8. EuGen - 28 Июня, 2011 - 14:59:24 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<a[^\>]*\>(.*)\<\/a\>/smi', $string, $rgMatches);
  2. var_dump($rgMatches);
9. Coder1994 - 28 Июня, 2011 - 15:24:51 - перейти к сообщению
EuGen пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<a[^\>]*\>(.*)\<\/a\>/smi', $string, $rgMatches);
  2. var_dump($rgMatches);

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(2) { [0]=> array(0) { } [1]=> array(0) { } }
10. EuGen - 28 Июня, 2011 - 16:10:49 - перейти к сообщению
Значит, полностью входные данные приведите и часть скрипта.
То, что я написал, я проверил (PHP 5.2)
11. Coder1994 - 28 Июня, 2011 - 16:16:27 - перейти к сообщению
EuGen пишет:
Значит, полностью входные данные приведите и часть скрипта.
То, что я написал, я проверил (PHP 5.2)

CODE (htmlphp):
скопировать код в буфер обмена
  1. <span class="vid-size">12.4 MB</span><a href="http://domain.com/mobile/5/260598_luh_112_201011_lilly_a_640_4x3.mp4?nvb=20110627035431&nva=20110629223431&hash=0bca6f32735ea1fdbf040" onclick="pageTracker._trackEvent('Video Page','Click Download IPHONE');" id="download-mp4">Download IPHONE Format</a></div>
  2.  
12. EuGen - 28 Июня, 2011 - 16:26:40 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $string='<span class="vid-size">12.4 MB</span><a href="http://domain.com/mobile/5/260598_luh_112_201011_lilly_a_640_4x3.mp4?nvb=20110627035431&nva=20110629223431&hash=0bca6f32735ea1fdbf040" onclick="pageTracker._trackEvent(\'Video Page\',\'Click Download IPHONE\');" id="download-mp4">Download IPHONE Format</a></div>';
  2.  
  3. preg_match_all('/\<a[^\>]*\>(.*)\<\/a\>/smi', $string, $rgMatches);
  4. var_dump($rgMatches);

CODE (htmlphp):
скопировать код в буфер обмена
  1. array
  2.   0 =>
  3.     array
  4.       0 => string '<a href="http://domain.com/mobile/5/260598_luh_112_201011_lilly_a_640_4x3.mp4?nvb=20110627035431&nva=20110629223431&hash=0bca6f32735ea1fdbf040" onclick="pageTracker._trackEvent('Video Page','Click Download IPHONE');" id="download-mp4">Download IPHONE Format</a>' (length=261)
  5.   1 =>
  6.     array
  7.       0 => string 'Download IPHONE Format' (length=22)
  8.  
13. Coder1994 - 28 Июня, 2011 - 17:03:56 - перейти к сообщению
вот фрагмент кода:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <span class="vid-size">12.0 MB</span><a href="http://domain.com/201106/23/282070/180P_165K_282070.mp4?nvb=20110627043614&nva=20110629231614&hash=0593ef10156701a52994d" onclick="pageTracker._trackEvent('Video Page','Click Download IPHONE');" id="download-mp4">Download IPHONE Format</a></div>
  2.                                         <div class="rate">
  3.                                                 <span>Rate: </span><span id="rate-table" class="pointer">
  4.                                                         <img id="rating-1" title="A real turnoff" src="http://domain.com/Template/www_domain_com/img/rating/star_off.gif"
  5.                                                                 onmouseover="SwJs.Article.RateHover(1);" onmouseout="SwJs.Article.RateShow();"
  6.                                                                 onclick="SwJs.Article.Rate(1.0);" /><img id="rating-2" title="Yawn" src="http://domain.com/Template/domain/img/rating/star_off.gif"
  7.                                                                         onmouseover="SwJs.Article.RateHover(2);" onmouseout="SwJs.Article.RateShow();"
  8.                                                                         onclick="SwJs.Article.Rate(2.0);" /><img id="rating-3" title="Not bad" src="http://domain.com/Template/www_domain_com/img/rating/star_off.gif"
  9.                                                                                 onmouseover="SwJs.Article.RateHover(3);" onmouseout="SwJs.Article.RateShow();"
  10.                                                                                 onclick="SwJs.Article.Rate(3.0);" /><img id="rating-4" title="Sizzling" src="http://domain.com/Template/www_domain_com/img/rating/star_off.gif"
  11.                                                                                         onmouseover="SwJs.Article.RateHover(4);" onmouseout="SwJs.Article.RateShow();"
  12.                                                                                         onclick="SwJs.Article.Rate(4.0);" /><img id="rating-5" title="Damn, that's hot" src="http://domain.com/Template/www_domain_com/img/rating/star_off.gif"
  13.                                                                                                 onmouseover="SwJs.Article.RateHover(5);" onmouseout="SwJs.Article.RateShow();"
  14.                                                                                                 onclick="SwJs.Article.Rate(5.0);" />
  15.                                                         <span id="spRating"></span></span><span id="rate-wait" class="hide">
  16.                                                                 <img src="http://domain.com/Template/img/progress/sm/snake-F5E9EF.gif" />
  17.                                                         </span><span id="rate-message" class="hide"></span>
  18.                                         </div>
  19.                                         <div class="add-fav">
  20.                                                 <span id="spanIsFavorite">+</span><a href="#" id="aToggleFavorites" onclick="pageTracker._trackEvent('Video Page','Click Favorites');return SwJs.Article.FavoriteClick(this, event);">Add to Favorites</a></div>
  21.                                 </div>
  22.                                 <div class="row">
  23.                                         <div class="dl-btm">
  24.                                                 <span class="vid-size">9.24 MB</span><a href="http://domain.com/201106/23/282070/144P_146K_282070.3gp?nvb=20110627043614&nva=20110629231614&hash=07092e81ecb8c0ea1d5c8" onclick="pageTracker._trackEvent('Video Page','Click Download MOBILE');" id="download-3gp">Download MOBILE Format</a></div>
  25.  
14. tsoi85 - 28 Июня, 2011 - 18:00:51 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all("#<span class=\"vid-size\">(.*)<\/span><a href=\"([^\>\"]*)\"([^\>]*)>(.*)<\/a>#is", $link, $a);
  3.  


Может, поможет...
15. Coder1994 - 28 Июня, 2011 - 18:32:50 - перейти к сообщению
tsoi85 пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all("#<span class=\"vid-size\">(.*)<\/span><a href=\"([^\>\"]*)\"([^\>]*)>(.*)<\/a>#is", $link, $a);
  3.  


Может, поможет...

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(5) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } [3]=> array(0) { } [4]=> array(0) { } }

 

Powered by ExBB FM 1.0 RC1