PHP 不与 arraypart 比较
PHP not comparing with arraypart
我正在创建一个简单的脚本,它在文本文件中搜索正确的组合,但它不起作用。我对所有问题都进行了故障排除,但所有部分都可以正常工作,但整个脚本仍然无法正常工作,我不知道如何修复它。
代码:
<html>
<form>
<input type="text" name="input" placeholder="hash"><button type="submit">Crack!</button>
</form>
<?php
$input = $_GET["input"]; // pulling input from url
$hashes = file_get_contents("hashes.txt"); // loading hashes
$hasharray = explode(";", $hashes); // separating hashcombos
$arraynum = count($hasharray); // counting number of hashcombos
// defining loop
$loopnum = 0;
while($loopnum < $arraynum) {
$combo = $hasharray[$loopnum]; // selecting hashcombo
$comboarray = explode("|", $combo); // separating hashcombo
$text = $comboarray[0];
$hash = $comboarray[1];
// cecking if hash matches
if($hash === $input) {
echo("Hash: $hash");
echo("<br>");
echo("Text: $text");
}
$loopnum = $loopnum + 1; // updating loop
}
?>
</html>
示例hashes.txt:
test|example;
example|test;
您的文件包含换行符,它们也是不可见的字符。例如:
test|example;(newline here)
example|test;
您使用 ;
拆分了文件中的行,但这并没有删除换行符。考虑到您问题中的评论,您的结果中有换行符导致比较失败。也就是说,我建议在加载散列以删除换行符后立即使用以下解决方案:
$hashes = preg_replace("/[\r\n]/", "", $hashes);
这将产生如下字符串:
test|example;example|test;
您的其余代码将按预期工作。
我正在创建一个简单的脚本,它在文本文件中搜索正确的组合,但它不起作用。我对所有问题都进行了故障排除,但所有部分都可以正常工作,但整个脚本仍然无法正常工作,我不知道如何修复它。
代码:
<html>
<form>
<input type="text" name="input" placeholder="hash"><button type="submit">Crack!</button>
</form>
<?php
$input = $_GET["input"]; // pulling input from url
$hashes = file_get_contents("hashes.txt"); // loading hashes
$hasharray = explode(";", $hashes); // separating hashcombos
$arraynum = count($hasharray); // counting number of hashcombos
// defining loop
$loopnum = 0;
while($loopnum < $arraynum) {
$combo = $hasharray[$loopnum]; // selecting hashcombo
$comboarray = explode("|", $combo); // separating hashcombo
$text = $comboarray[0];
$hash = $comboarray[1];
// cecking if hash matches
if($hash === $input) {
echo("Hash: $hash");
echo("<br>");
echo("Text: $text");
}
$loopnum = $loopnum + 1; // updating loop
}
?>
</html>
示例hashes.txt:
test|example;
example|test;
您的文件包含换行符,它们也是不可见的字符。例如:
test|example;(newline here)
example|test;
您使用 ;
拆分了文件中的行,但这并没有删除换行符。考虑到您问题中的评论,您的结果中有换行符导致比较失败。也就是说,我建议在加载散列以删除换行符后立即使用以下解决方案:
$hashes = preg_replace("/[\r\n]/", "", $hashes);
这将产生如下字符串:
test|example;example|test;
您的其余代码将按预期工作。