【问题标题】:Replacing a word in an output. php替换输出中的单词。 php
【发布时间】:2015-02-10 14:04:19
【问题描述】:

<?php
	$file = 'C:\wamp\www\Killboard\EPChernarus1\PhitLog.txt';
	$searchfor = 'Chernarus';
    header('Content-Type: text/html');
    $contents = file_get_contents($file);
	$contents = str_replace("(ArmA-AH.net)", "(DayZNorway.com)", $contents);
    $pattern = preg_quote($searchfor, '/');
	$contents = str_replace("DayZ Instance: 11", " Map: Chernarus ", $contents);
    $pattern = "/^.*$pattern.*$/m";
	$contents = str_replace("PKILL", "Player Killed", $contents);
	$contents = str_replace("CLOG", "Combat Logged", $contents);

if(preg_match_all($pattern, $contents, $matches)){
	echo "<strong>";
    echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#2983CB'>Killboard Epoch Chernarus: <br>";
	echo '', implode(" <br>", $matches[0]);
	echo "</strong>";
    }
else 
	{
	echo "No kills yet. Looks like everyone is playing nice.";
    }
 ?>

在这里得到很多帮助后,代码现在看起来像这样 ^ 现在我正在尝试包含下面的代码。 这样它将武器类重命名为更用户友好的名称。 我已经包含了它正在寻找的两个 .php 文件,但我不确定我放置它的位置以及它是否会像现在这样运行,我对此表示怀疑。

有人可以吗

		if ($line_type == 'kill') {
			include("killfeed_weapon_classnames.php");
			include("killfeed_weapon_cleannames.php");
			$swap_key = array_search($line_varlist['weapon'], $wcn);
			if($swap_key != false) { $line_varlist['weapon'] = $wn[$swap_key]; }
		}

【问题讨论】:

  • 旁注:我无法更改它登录到 PhitLog.txt 文件的方式
  • 您是否尝试过使用替换正则表达式?
  • str_replace,简单地说。
  • 没有尝试过替换正则表达式不,你能告诉我怎么做吗?

标签: php arrays str-replace


【解决方案1】:

在所有 preg 匹配之前和 $contents 使用之后:

$contents = str_replace("(Arma-AH.net)", "(DayZNorway.com)", $contents);

编辑忘记了括号和下一个问题。我不打算只给你下一部分,而是看看下面的例子并按照这应该可以帮助你实现你想要的下一个问题。

$myArray = array("firstName" =>"sam", "secondName" => "billy", "thirdName" => "sally");


$nameKey = array_search("billy", $myArray);

echo $nameKey;

if($nameKey){
    $myArray[$nameKey] = "Tom";
}

print_r($myArray);

【讨论】:

  • 已编辑我忘记了括号。如果这仍然不起作用,只需在输出之前将其放入匹配项的循环中。所以在你的内爆匹配之前就行了。在比赛中进行[0]
  • 不,仍然没有工作。你能告诉我你的意思吗?我可能做错了
  • 如果可以在顶部显示最新的输出,那也很棒。输出的文字都是过时的,可行吗?
  • 为此,您需要对每个部分进行正则表达式,并将日期存储到 datetime 对象中并使用日期比较函数。对它们进行排序。我仍然不知道为什么我的答案不适用于原始问题。如果它不起作用,则该文本不在您要拉入的文本文件中。
  • 它确实有效!我做错了什么,所以现在一切都好。但是对于日期之后的排序。这是一项艰巨的任务,还是您也可以在这里帮助我?非常感谢!
【解决方案2】:
<?php
    $file = 'C:\wamp\www\Killboard\EPChernarus1\PhitLog.txt';
    $searchfor = 'Chernarus';
    header('Content-Type: text/html');
    $contents = file_get_contents($file);
    $contents = str_replace("(ArmA-AH.net)", "(DayZNorway.com)", $contents);
    $pattern = preg_quote($searchfor, '/');
    $contents = str_replace("DayZ Instance: 11", " Map: Chernarus ", $contents);
    $pattern = "/^.*$pattern.*$/m";
    $contents = str_replace("PKILL", "Player Killed", $contents);
    $contents = str_replace("CLOG", "Combat Logged", $contents);

if(preg_match_all($pattern, $contents, $matches)){
    echo "<strong>";
    echo "<div style ='font:11px/21px Arial,tahoma,sans-serif;color:#2983CB'>Killboard Epoch Chernarus: <br>";
    echo '', implode(" <br>", $matches[0]);
    echo "</strong>";
    }
else 
    {
    echo "No kills yet. Looks like everyone is playing nice.";
    }
 ?>

这就是我最终做的,现在它几乎不漂亮,但它有效。 现在我需要让结果按降序显示。

有人可以帮助我吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多