搜索文档中的文本并将该行作为输出

时间:2016-01-22 12:22:39

标签: php

我正在尝试制作一个if,它会尝试通过搜索文档获取一行文档。因此,它在文档中搜索“Registrar Handle”并获得该行的整个输出。

我遇到的问题是我收到此错误:Notice: Undefined index: Registrar Handle in C:\xxxx\xxxx\xxx\xx on line 29

如果某人有解决方案,可能会解释为什么会发生这种情况会很好吗?

$commandR = "whois ".mysql_result($domain, 0);  

$outputR = shell_exec($commandR);
$fhR = fopen('R.txt','w+');
fwrite($fhR,$outputR);
fclose($fhR);
  { 
    //.no
    if( strpos(file_get_contents("./R.txt"),$_GET['Registrar Handle'])){
       $fhR = fopen('A.txt','r');
       $R = fgets($_GET);
       fclose($fhA);
       Echo $R;
       //mysql_query("UPDATE `dom_oversikt`.`server1` SET `Registrar`='".$R."' WHERE `id` = '$id';");      
    }

1 个答案:

答案 0 :(得分:0)

您可以迭代刚创建的文件,获取文件的每一行,直到到达它的末尾并回显/返回包含您提到的字符串的行。

$searchedString = 'Registar Handle';
if (($handle = fopen("./R.txt", "r")) !== false) {
    while (!feof($handle)) {
        $currentLineInFile = fgetss($handle, 4096);
        if(false !== strpos($currentLineInFile, $searchedString)){
            echo $currentLineInFile;
        }
    }

    fclose($handle);
}

有人可能会说你可以使用preg_match代替strpos,但它更复杂,速度更慢(根据指向php doc本身的SO answer)。

关于您的错误,这只是因为数组 $ _ GET 中没有关键的'注册处理程序'