Jump to content
Sign in to follow this  
redmine

Array in PHP e file di testo

Recommended Posts

Salve a tutti, sono nuovo del forum, e anche di PHP.
Ho un problema, dovrei estrarre dei valori da un file di testo, mi spiego meglio.

Ho un file .conf che contiene:

# vers. 1.0
poll
{
connstring db=uxfts user=uxfts_admin password=uxfts_admin host=120.79.66.66
}

dovrei solo estrarre i valori: user, password ed host (quindi quelli dopo il simbolo =)
Nella mia ignoranza ho quindi scritto il seguente script:

<?php
$pattern = "/\bconnstring\b/i";
$cerca = preg_grep($pattern, file('file.conf'));
$cerca2 = implode($cerca);
$pattern = ".=";
$risultato=split($pattern, $cerca2);
foreach ($risultato as $valore)
echo "$valore\r\n"
?>


Che mi restituisce:
connstring dbnam
uxfts use
uxfts_admin passwor
uxfts_admin hos
120.79.66.66

ma a me servono solo i valori indicati prima. Dove sbaglio? Quale istruzione/i usare?

Grazie.

Share this post


Link to post
Share on other sites

Io farei qualcosa del genere...

$conf = GetConf("{\nconnstring ", "}");
parse_str($conf);

echo "db->".$db."<br>"; // scrive uxfts
echo "user->".$user."<br>";// scrive uxfts_admin
echo "password->".$password."<br>";// scrive uxfts_admin
echo "host->".$host."<br>";// scrive 120.79.66.66

function GetConf($prefix, $suffix)
{
	$file = file_get_contents("file.conf"); // cambia file.conf con il nome effettivo del file
	$pos = stripos($file, $prefix);
	$str = substr($file, $pos);
	$str = substr($str, strlen($prefix));
	$pos = stripos($str, $suffix);
	$str = substr($str, 0, $pos);
	$str = str_replace(" ", "&", $str);

	return $str;
}

Le ragioni sono due. La prima è che mi sembra formalmente più corretto trattare il file .conf esattamente come un file di configurazione. Da qui il parse_str e tutto il resto del discorso. La seconda ragione è che, almeno per quanto mi riguarda, è più comodo da utilizzare. Poi ovviamente de gustibus.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×