Я работаю над сценарием поиска PHP, который сканирует хранилище пакетов текстового файла на веб-сайте и возвращает URL каждого совпадения. Текстовые файлы выглядят следующим образом:
PACKAGE NAME: package_one
PACKAGE LOCATION: ./package_one
PACKAGE VERSION: 0.1.2
PACKAGE NAME: package_two
PACKAGE LOCATION: ./package_two
PACKAGE VERSION: 0.2.1
PACKAGE NAME: package_three
PACKAGE LOCATION: ./package_three
PACKAGE VERSION: 1.3.4
PACKAGE NAME: package_one
PACKAGE LOCATION: ./package_one
PACKAGE VERSION: 0.1.2
Мой поисковый скрипт в настоящее время выглядит следующим образом:
<?
$search = $_POST['search']; //Passed from a user input form
$data_file = file('http://www.example.com/data_file.txt'); //The text file repository
$final_concatenated_results = "";
for ($i = 0, $found = FALSE; isset($data_file[$i]); $i++) {
if (trim($data_file[$i]) === $search) {
$cleanse = trim($data_file[++$i]);
$output_part_one = strstr($cleanse, '.');
$output_part_two = "http://www.example.com/packages_repository/".$output_part_one;
$add_this = "<a href='$output_part_two'>$output_part_two</a>"."<br/>";
$found = TRUE;
$final_concatenated_results.=$add_this;
} }
if ($found == TRUE) {
echo $final_results;
}
if ($found == FALSE) {
echo "Error, package not found.";
}
?>
Например, если бы "ПАКЕТ ИМЯ: package_two" было набрано дословно, это был бы вывод - http://www.example.com/packages_repository/./package_one, который отлично работает.
В идеале я хотел бы знать, как изменить свой код, чтобы вместо ввода «ИМЯ ПАКЕТА: package_two» можно было просто ввести «package_two» или даже что-то вроде «two» или «tw». Сколько нужно настроить?
Кроме того, я создал переменную для объединения всех полученных URL-адресов в одну строку, поэтому при поиске «package_one» будет возвращено два URL-адреса ... Не думаю, что я сделал код правильно, поскольку он только производит один URL.
** Я должен упомянуть, что сразу после сопоставления имени пакета он находит следующую строку, следующую за "PACKAGE LOCATION:." захватить URL
Любой вклад приветствуется, спасибо!