Есть ли функция, которая может прочитать функцию php после разбора? - PullRequest
0 голосов
/ 21 апреля 2010

У меня есть php-файл, отражающий хэши из базы данных MySQL. Это необходимо для удаленной программы, которую я использую, но в то же время мне нужно открыть другой скрипт php и проверить его на предмет анализа строк POST. Если он проверяет предварительный анализ строки, он просто получает запрос MySQL, а не строки для поиска.

Я не уверен, делают ли это какие-либо функции. Fopen () читает файл перед анализом? или file_get_contents ()?

Если это так, есть ли функция, которая будет читать файл после запуска кода php и mysql?

Файл с запросом хэшей и echo находится в том же каталоге, что и читающий его файл php, если это имеет значение.

Возможно, fopen читает его после разбора, и я сделал что-то не так, но сначала я хранил хеши прямо в файле, и он работал нормально. После того, как я изменил его, чтобы отобразить содержимое таблицы MySQL, он вышел из строя.

Сценарий MySQL Query:

$query="SELECT * FROM list";
$result=mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
 echo $row['hash']."<br>";
 }

То, что я использовал для получения хэша из этого скрипта раньше, когда это был просто список хэшей:

            $myFile = "hashes.php";
            $fh = fopen($myFile, 'r');
            $theData = fread($fh, filesize($myFile));
            fclose($fh);
            $mystring = $theData;
            $findme   = $hash;
            $pos = strpos($mystring, $findme);

1 Ответ

1 голос
/ 21 апреля 2010

Самое простое, что можно сделать, это изменить свой первый php-файл, который повторяет все, по следующим строкам:

  • изменить каждый экземпляр echo, например, $data[] =
  • внизу, выполните foreach($data as $d) echo $d (это даст тот же результат, что и у вас сейчас)
  • теперь у вас все еще есть массив $data, который вы можете просматривать и делать с ним все, что захотите.

Для предоставления примеров рабочего кода было бы неплохо, если бы вы могли опубликовать текущий код вашего файла.

РЕДАКТИРОВАТЬ

Если вы измените свой скрипт следующим образом:

$query="SELECT * FROM list";
$result=mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
 $data[] = $row['hash']."<br />";
 }
foreach($data as $d) {
     echo $d;
}

... у вас будет массив $ data, который содержит каждый хэш в ключе.Затем вы можете перебрать этот массив так:

foreach($data as $d) {
  //do something
}
...