Я знаю, что это старый вопрос, но я наткнулся на этот пост в поисках решения для создания гиперссылок с использованием CSS и в итоге сделал свой собственный, мог бы заинтересовать кого-то, кто наткнулся на этот вопрос, как я:
Вот php-функция под названием 'linker ();', которая включает поддельный атрибут CSS
connect: 'url.com';
для определенного элемента #id.
просто позвольте php вызывать это на каждом элементе HTML, который вы считаете достойным ссылки.
входными данными являются файл .css в виде строки , используя:
$ style_cont = file_get_contents ($ style_path);
и #id соответствующего элемента. Вот все это:
function linker($style_cont, $id_html){
if (strpos($style_cont,'connect:') !== false) {
$url;
$id_final;
$id_outer = '#'.$id_html;
$id_loc = strpos($style_cont,$id_outer);
$connect_loc = strpos($style_cont,'connect:', $id_loc);
$next_single_quote = stripos($style_cont,"'", $connect_loc);
$next_double_quote = stripos($style_cont,'"', $connect_loc);
if($connect_loc < $next_single_quote)
{
$link_start = $next_single_quote +1;
$last_single_quote = stripos($style_cont, "'", $link_start);
$link_end = $last_single_quote;
$link_size = $link_end - $link_start;
$url = substr($style_cont, $link_start, $link_size);
}
else
{
$link_start = $next_double_quote +1;
$last_double_quote = stripos($style_cont, '"', $link_start);
$link_end = $last_double_quote;
$link_size = $link_end - $link_start;
$url = substr($style_cont, $link_start, $link_size); //link!
}
$connect_loc_rev = (strlen($style_cont) - $connect_loc) * -1;
$id_start = strrpos($style_cont, '#', $connect_loc_rev);
$id_end = strpos($style_cont,'{', $id_start);
$id_size = $id_end - $id_start;
$id_raw = substr($style_cont, $id_start, $id_size);
$id_clean = rtrim($id_raw); //id!
if (strpos($url,'http://') !== false)
{
$url_clean = $url;
}
else
{
$url_clean = 'http://'.$url;
};
if($id_clean[0] == '#')
{
$id_final = $id_clean;
if($id_outer == $id_final)
{
echo '<a href="';
echo $url_clean;
echo '" target="_blank">';
};
};
};
};
это, вероятно, можно улучшить / сократить, используя такие команды, как .wrap () или getelementbyID ()
поскольку он генерирует только часть <a href='blah'>
, но, видя, что </a>
исчезает в любом случае без открывающего предложения, он все равно работает, если вы просто добавляете их везде: D