Optimering af php-kode / kald/oprettelse af function
Hej,det her er noget af en smøre!! Jeg vil gerne lave en socket-forbindelse til en router... Alt dette er sådan set på plads, og VIRKER! Jeg kunne bare godt tænke mig at optimere koden, således at man blot ved at kalde en function, kan køre det stykke, hvor der bliver indtastet pwd's.
Som man kan se, er koden opdelt i kald via 2 forms (reset og conf). Da begge "funktioner" skal ind i enable-menuen på routeren for at komme videre, vil jeg gerne oprette en function, som kan gøre det form mig, i stedet for at lave samme kode 2 gange.
Her er koden:
for ($i = 0; $i < count($check); $i++)
{ // Start på gennemløb af de på listen markeret slettet routere.
$IP = $dbArrRouter[$check[$i]][0];
$Port = $dbArrRouter[$check[$i]][1];
$Pwd = $dbArrRouter[$check[$i]][2];
//Start - 'Reset' = nulstilling af valgte routere
if( $svar=="reset" )
{
$fp = fsockopen ($IP, $Port, $errno, $errstr, 60);
if (!$fp)
{// Start - Forbindelses OK false
echo "telnet forbindelse offline";
}// Slut - Forbindelses OK false
else
{// Start - Forbindelses OK true
fputs ($fp, "GET / HTTP/1.0\r");
socket_set_timeout($fp, 1);
$buffer = fread($fp, 128);
echo "Læs, om der skal indtastes line-password:<BR>";
//Check for passwordindtastning (fortsættes, hvis der IKKE promptes for pwd! Derfor ingen 'else'):
if(strstr($buffer, "Password:")){
//Indtast password:
fputs ($fp, $Pwd ."\r\r");
echo "Line-password indtastet<BR>";
}
else
{
echo "Line-password ikke påkrævet<BR>";
}
//Læs ny linie:
$buffer = fread($fp, 128);
//socket_set_timeout($fp, 1);
echo "Læs, om det nu er Router: (" .$buffer .")<BR>";
if(strstr($buffer, "Router"))
{ //Check for passwordindtastning (fortsættes, hvis der IKKE promptes for pwd! Derfor ingen 'else'):
if(strstr($buffer, "Router>"))
{ //Skriv enable, hvis ikke i enable-mode
fputs ($fp, "enable\r");
//Læs ny linie:
$buffer = fread($fp, 256);
//socket_set_timeout($fp, 2);
echo "Læs, om der skal indtastes enable-password: " .$buffer .":<BR>";
if(strstr($buffer, "Password:")){
//Indtast password:
fputs ($fp, $Pwd ."\r\r");
echo "Enable-password indtastet<BR>";
//Læs ny linie:
$buffer = fread($fp, 128);
}
else
{
echo "Enable-password ikke påkrævet<BR>";
}
}
echo "Læs, om det nu er Router#: (" .$buffer .")<BR>";
if(strstr($buffer, "Router#"))
{ //Start: Router-menu
echo "Klar til nulstilling ell. conf. af router!:<BR><BR>";
fputs ($fp, "write erase\r\r");
echo "write erase indtastet og confirmed (2 x enter)<BR>";
//Læs indtil der kommer complete (chekces på 'Initialized-sætningen')!
while( !(strstr($buffer, "Initialized")) )
{
$buffer = fread($fp, 128);
echo "Buffer: " .$buffer ."<BR>";
}
//Skyd en enter af, så routeren prompter med router#:
fputs ($fp, "\r");
echo "Enter efter confirm (write erase) indtastet<BR>";
//Læs indtil routeren er klar til indtastning:
while( !(strstr($buffer, "Router#")) )
{
$buffer = fread($fp, 128);
echo "Buffer: " .$buffer ."<BR>";
}
fputs ($fp, "reload\r\r");
echo "reload indtastet + confirmed<BR>";
$buffer = fread($fp, 256);
echo "Buffer: " .$buffer;
//Hvis der promptes for, om configurationen skal modificeres, svares default nej!
if ( strstr($buffer, "modified") )
{
fputs ($fp, "n\r\r");
echo "n valgt for modified... + confirmed<BR>";
}
while( !(strstr($buffer, "configuration dialog")) )
{
$buffer = fread($fp, 128);
echo "Buffer: " .$buffer ."<BR>";
}
fputs ($fp, "n\r\r");
echo "n for ...initial conf....<BR>";
//Læs indtil router er færdig med reload-funktionen
while( !(strstr($buffer, "Router>")) )
{
$buffer = fread($fp, 128);
echo "Buffer: " .$buffer ."<BR>";
}
echo "Routeren er slettet!";
} //Slut: Router-menu
} //Slut: Router enable - true
else
{ //Start: Router enable - false
echo "Router er ikke klar til nulstilling eller ny konfiguration!";
} //Slut: Router enable - false
fclose ($fp);
}// Slut - Forbindelses OK true
}// Slut - 'Reset' = nulstilling af valgte routere
// Start - 'Conf' = indlæs ny konfiguration fra fil af valgte routere
if( $svar=="conf" )
{
echo "Buuuh<BR>";
}// Slut - 'Conf' = indlæs ny konfiguration fra fil af valgte routere
} // Slut på gennemløb af de på listen markeret slettet routere.
Kan I hjælpe med det?? :-X