过滤文本文件中的行,并使它们成为http href链接


Filter lines in txt files and make them http href links

这次我想做的是获得()之间的数字,过滤它们,以便我可以将它们放在锚定的http href链接中。

文件示例:

09:02:10 - Admin SO_Conner (1374991) teleported to player Footman_Skull_of_Reyne (1050854). 
09:02:15 - Admin SO_Conner (1374991) teleported to player Levy_Eddin_of_Reyne (1166164). 
09:02:22 - Admin SO_Conner (1374991) faded out player Levy_Eddin_of_Reyne (1166164). 
09:02:27 - Admin SO_Conner (1374991) teleported to player Valyrian_Militia_Crazymortal (1575057).

链接看起来像这样:

09:02:27 - Admin SO_Conner  (<a href="?get_engine&loopup=1374991">1374991</a>) teleported to player Valyrian_Militia_Crazymortal (<a href="?get_engine&loopup=1575057">1575057</a>)

我已经试过这样做了:

<?php
    if(strpos($line,'1374991') === false)
?>

但是我似乎找不到让它工作的方法。

Using preg_replace:

$file = file(/* path to file */);
foreach($file as &$line) {
    $line = preg_replace('/('d'd:'d'd:'d'd - [a-zA-Z _]+'()('d+)(')[a-zA-Z _]+'()('d+)(').*)/', '$1<a href="?get_engine&loopup=$2">$2</a>$3<a href="?get_engine&loopup=$4">$4</a>$5', $line);
}

这应该可以工作,即使正则表达式模式可以更简单。如果您确信txt文件的每一行的结构都是相同的,那么您可以使用以下模式:

$line = preg_replace('/'(('d+)')/', '<a href="?get_engine&loopup=$1">$1</a>', $line);

使用这个正则表达式查找括号之间的内容:

var regExp = /'(([^)]+)')/;
var matches = regExp.exec("09:02:10 - Admin SO_Conner (1374991) teleported to player Footman_Skull_of_Reyne (1050854).");

(Regex演示)

用简单的字符串连接形成href:

var href = "?get_engine&loopup=" + matches[1];

然后将此属性添加到锚元素:

$("a").attr("href", href);