猿问

PHP 不与 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;


POPMUISE
浏览 83回答 1
1回答

扬帆大鱼

您的文件包含换行符,它们也是不可见的字符。例如:test|example;(newline&nbsp;here) example|test;您使用 拆分文件中的行;,但这不会删除换行符。考虑到您问题中的评论,您的结果中有换行符导致比较失败。也就是说,我建议在加载哈希以删除换行符后立即使用以下解决方案:$hashes&nbsp;=&nbsp;preg_replace("/[\r\n]/",&nbsp;"",&nbsp;$hashes);这将产生如下字符串:test|example;example|test;您的其余代码将按预期工作。
随时随地看视频慕课网APP
我要回答