webForumDet fria alternativet

från ASP Till PHP

PHPur PHP

22 svar · 446 visningar · startad av jboy_87

Medlem sedan aug. 20011 099 inlägg
Frågan#1

Någon som kan kan?

Function lank1(bytText) 
bytText = Replace(bytText,"/","")
bytText = Replace(bytText,"medlem_","") 
bytText = Replace(bytText,"las","") 
lank1 = bytText 
end function
Select Case lank1(Request.ServerVariables("SCRIPT_NAME"))

Case "djiwateplanket.asp"
	Call humor
	Call senasteinloggade
	Call snabbsok
Case "snyggast.asp"
	Call senasteinloggade
	Call dinapoang
	Call snabbsok
Case "affaren.asp"
	Call humor
	Call poanglista
	Call dinapoang
	Call snabbsok
Case else
	Call omrostning
	Call horoskop
	Call kalendarium
end select
Medlem sedan mars 20032 667 inlägg
#2

Du kan säkert själv om du tittar på följande funktion:

str_replace()
http://se2.php.net/manual/en/function.str-replace.php

Samt hur en switch fungerar:
http://se2.php.net/manual/en/control-structures.switch.php

och för att ta fram sidan i adressraden

$_SERVER['PHP_SELF'];

/R missade två fnuttar precis som matte påpekade längre ner. ;)

Medlem sedan aug. 20011 099 inlägg
#3

hur anropar jag från en switch typ
Call bla bla'

Sub blabla()
end sub

Medlem sedan aug. 20011 099 inlägg
#4

är nybörjare så det e lite svårt för mig :birp

Medlem sedan mars 20032 667 inlägg
#5

PHP har inga subrutiner. En subrutin är en funktion som inte ger något returvärde.

//funktion med returvärde
function myFunc() {
    $myVar = 1;
    return $myVar; 
}

//funktion utan returvärde
function myFunc() {
    print $myVar; 
}

//anropa funktion 1
$test = myFunc();

//anropa funktion 2
myFunc();
Medlem sedan aug. 20011 099 inlägg
#6

kommer inte längre än sä här!

<?php 
$lank = $_SERVER[PHP_SELF]
switch (@$i == $lank){
    Case "/main.php":
    omrostning();
	
    case "/kompisar.php":
     omrostning();

    case "/main.php":
   omrostning();

}
?>
Medlem sedan aug. 20011 099 inlägg
#7

löste det så här!

<?php 

switch (@$_SERVER[PHP_SELF]){

   Case "/main.php":
    omrostning();
    break;
	
    case "/kompisar.php":
     omrostning();
     break;

    case "/test.php":
   omrostning();
   break;

}
?>
Medlem sedan aug. 20002 975 inlägg
#8

Lägg dit några fnuttar inom hakparentesen så slipper du stoppa visning av notiser/felmeddelanden:

switch ($_SERVER['PHP_SELF']){
Medlem sedan aug. 20011 099 inlägg
#9

nu återstår bara replacen?

$string str_replace("/", "", $string);
$string str_replace("medlem_", "", $string);

switch string($_SERVER['PHP_SELF'])){

Medlem sedan aug. 20002 975 inlägg
#10
$string = str_replace("/", "", $string); 
$string = str_replace("medlem_", "", $string); 

switch ($_SERVER['PHP_SELF']){
Medlem sedan aug. 20011 099 inlägg
#11

nu hänger jag inte med? den påverkar väll inte $_SERVER['PHP_SELF'] ??

Medlem sedan aug. 20002 975 inlägg
#12

Din egen kod:

<?php 

switch ($_SERVER['PHP_SELF']){

   Case "/main.php":
    omrostning();
    break;
	
    case "/kompisar.php":
     omrostning();
     break;

    case "/test.php":
   omrostning();
   break;

}
?>

Raderna över har inget med den att göra.

Medlem sedan aug. 20011 099 inlägg
#13

jag vill ju replaca i $_SERVER['PHP_SELF'] ta bort / osv..!

Medlem sedan jan. 20032 285 inlägg
#14

Jag är ju ingen direkt höjdare i PHP, men borde det inte vara såhär?

$string = $_SERVER['PHP_SELF'];
$string = str_replace("/", "", $string); 
$string = str_replace("medlem_", "", $string); 

switch ($string){
Medlem sedan mars 20032 667 inlägg
#15

Gör en funktion precis som du gjort i ASP. Du har ju alla delar du behöver i mattes och mina svar ovan.

Medlem sedan aug. 20002 975 inlägg
#16

Jag kan inte ASP och förstår därför inte vad du försöker göra med din funktion.

Men kanske ändå. En ren gissning.
Du har adresser som /las/test.php eller /medlem_/kompisar.php. Ur detta vill du ha ut test.php respektive kompisar.php och beronde på värdet så kör du olika funktioner. I såfall finns det en inbyggd funktion för det i PHP:

<?php 

// Hämtar filnamnet ur $_SERVER['PHP_SELF']
$PHP_SELF = basename($_SERVER['PHP_SELF']);

switch ($PHP_SELF){

   Case "main.php":
    omrostning();
    break;
	
    case "kompisar.php":
     omrostning();
     break;

    case "test.php":
   omrostning();
   break;

}
?>
Medlem sedan aug. 20011 099 inlägg
#17

gjorde så här
$string = $_SERVER['PHP_SELF'];
$string = str_replace("/", "", $string);
$string = str_replace("medlem_", "", $string);

switch ($string){
det funkar men nu har jag fått ett annat problem?
default värkar inte funka?

Case "/test.php":
omrostning();
break;

default:
omrostning();
horoskop();
kalendarium();
break;

Medlem sedan aug. 20002 975 inlägg
#18

case default:

Medlem sedan aug. 20011 099 inlägg
#19

Parse error: parse error, unexpected T_DEFAULT in c:\inetpub\wwwroot\meny2.php on line 139

Medlem sedan aug. 20011 099 inlägg
#20

i vb ser det ut så här

Case else
Call omrostning
Call horoskop
Call kalendarium

130 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)