2016-04-28 2 views
0

Я хотел бы, чтобы извлечь из этого onclick="printcoupon('292')":Извлечь текст из ссылки

[url=http://stackoverflow.com?foo=bar|onclick=printcoupon('292')]foobarbaz[/url] 

Текст внутри OnClick может изменяться динамически, но то, что я имел в виду обнаруживал, если есть слово OnClick внутри этого и если так захватить содержимое внутри двойных кавычек (в настоящее время это говорит printcoupon('292'))

в принципе, хотя мне нужно, чтобы захватить либо onclick=printcoupon('292') или просто printcoupon('292').

В любом случае, это незнакомая территория.

function bbcode($str) { 
     // situation when str = [url=http://stackoverflow.com?foo=bar|onclick=printcoupon('292')]foobarbaz[/url] 
     if(stristr($str,'onclick')){ 
     $parts=explode('|',$str); 
     var_dump($parts);die(); 
     $str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a href="\1" style="text-decoration:none;color:#336699" onclick="PUT ONCLICK EXTRACTED CONTENT HERE">\2</a>', $str); 

     // situation when str = [url=http://stackoverflow.com?foo=bar]foobarbaz[/url] 
     } else { 
     $str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str); 
     } 
     return $str; 
    } 

Так как вы можете видеть,

+0

Что используется для вывода кода HTML в первую очередь? Когда вы выходите, вы можете не просто делать все, что вам нужно, чтобы сделать это? – Mike

+0

@ JoseManuelAbarcaRodríguez Закрыть. Я могу либо захватить 'onclick = printcoupon ('292')', либо просто 'printcoupon ('292')'. Not> хотя – slicks1

+1

Возможный дубликат [Как извлечь img src, title и alt из html с помощью php?] (Http://stackoverflow.com/questions/138313/how-to-extract-img-src-title-and- alt-from-html-using-php) – Mike

ответ

0

Если подстрока вы хотите ВСЕГДА начинается с «OnClick =» и ВСЕГДА заканчивается «)]», вы можете сделать это:

<?php 
$s = "[url=http://stackoverflow.com?foo=bar|onclick=printcoupon('292')]foobarbaz[/url]"; 
$onclick = strpos($s,"onclick="); // POSITION OF "ONCLICK=". 
$closed_parenthesis = strpos($s,")]"); // POSITION OF ")]". 
echo substr($s,$onclick,$closed_parenthesis - $onclick + 1); 
?> 
+0

Perfect! Благодарю. – slicks1

Смежные вопросы