webForumDet fria alternativet

Ordna en variabel

5 svar · 309 visningar · startad av TomasA

TomasAMedlem sedan feb. 2003173 inlägg
#1

Jag vill ha en variebel som motsvarar namnet på den fil som variabel ligger i, förutom suffixet.
I filen "res0501.php" skall "res0501" bli variabeln.
Tanken är att jag sen i filen tar med en txt-fil med samma namn "res0501.txt".
Men detta fungerar inte

{
$resultat=basename($PHP_SELF); 
}

Lite längre ner har jag då

<?
	$filename = $resultat(".txt");
	$fd = fopen($filename, 'r');
	while(!feof($fd))

Får felmeddelandet

Fatal error: Call to undefined function: sw05_02.php() in /home/min/public_html/mapp/mapp/res05/sw05_02.php on line 36

Jag får troligen med suffixet - tror jag. Förslag?

aasahMedlem sedan mars 20034 471 inlägg
#2

Re: Ordna en variabel

Skippa paranteserna!

$filename = $resultat.".txt";

Första punkten konkatinerar strängen ".txt" med det som står före. Det du skrev tolkas som ett anrop till funktionen
res0501(".txt");

TomasAMedlem sedan feb. 2003173 inlägg
#3

Gjorde det och även ingen, en eller bägge av punkterna, men ändå kom detta

<b>Warning</b>: fgets(): supplied argument is not a valid stream resource in <b>/home/min/public_html/mapp/mapp/res05/sw05_02.php</b> on line <b>41</b><br />
<br />
<b>Warning</b>: feof(): supplied argument is not a valid stream resource in <b>/home/min/public_html/mapp/mapp/res05/sw05_02.php</b> on line <b>39</b><br />
<br />

TomasAMedlem sedan feb. 2003173 inlägg
#4

Om jag kör med denna kod:

{
$resultat=basename($PHP_SELF); 
}

Jag tror jag att jag också får med suffixet. Hur tar jag bort det?

pettssonMedlem sedan jan. 20021 122 inlägg
#5

Från manualen:

'PHP_SELF'
The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar. The _FILE_ constant contains the full path and filename of the current (i.e. included) file.

If PHP is running as a command-line processor this variable contains the script name since PHP 4.3.0. Previously it was not available.

Du får alltså med bl.a. suffixet.
Enligt manualen så finns det ett optionellt andra argument, filändelse som ska klippas. Så:

$resultat = basename($PHP_SELF, ".php");
TomasAMedlem sedan feb. 2003173 inlägg
#6

Stort tack - funkar perfekt.

Och jag får sätta mig ner och läsa den där manualen ordentligt.
Kikade och kikade, men fann inte det jag sökte.
Så det får bli Manualen och ett par bra glasögon.
:)

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