webForumDet fria alternativet
Logga in / Bli medlem

Wrong parameter, mapp namn

PHP

7 svar · 291 visningar · startad av FIgg3

Medlem sedan sep. 2001354 inlägg
Trådstart#1

Hejsan hej!

Så här ligger det till:

Jag har en mapp med åäö tecken i sitt namn därför blir detta ett litet problem när jag ska länka till bilder som ligger i denna mapp (Problemet är det att sidan kan ej hittas när det skrivs med åäö tecken) men jag löste det men hjälp av urlencode. Problemet är nu detta med hjälp av urlencode blir mappen "arne kaj" arne+kaj istället för arne%20kaj

Det sista problemet tänkte jag att man kunnde lösa med en vanlig repleace men då får jag detta fel meddelandet:

Warning: Wrong parameter count for str_replace() in /home/lobo/public_html/funk.php on line 32

Så här ser koden jag skriver ut det med ut (skum mening ;))

echo "<a href='bilder.php?visa=bilder&kat=".$_GET['kat']."&bild=".$r['bild']."&wiev=y&info=n'><img src='bilder\\".urlencode(strmellan($r['user']))."\\". $r['bild_l']."' border='0'></a> ";

Så här ser funktionen strmellan ut:

function strmellan($text) 
{ 
$text = str_replace( "+", "%20" );
return $text;
}
Medlem sedan juni 20034 013 inlägg
#2

Du har glömt skriva vilken sträng den ska köra replace på :-)

Se dokumentationen:
http://se.php.net/str_replace

Medlem sedan sep. 2001354 inlägg
#3

Jag kanske fattar dig helt fel men gör jag inte det med hjälp av ".urlencode(strmellan($r['user']))." ?

Medlem sedan juni 20034 013 inlägg
#4

Nej, med den raden gör du bara att variabeln $r['user'] skickas till funktionen strmellan och där får namnet $text. Men sedan använder du ju inte värdet på $text.

Felmeddelandet lyder ju:

Wrong parameter count for str_replace()

alltså att du skickar fel antal värden till str_replace. Parametrar är det som står mellan parenteserna och skiljs åt med kommatecken. Du skickar bara två parametrar till str_replace "+" och "%20". Tittar du i dokumentationen ser du att det ska vara tre:

1. Strängen den ska ersätta.
2. Strängen den ska ersätta med.
3. Strängen den ska utföra ersättningen i.

Och det är ju trean du har glömt, dvs $text, dvs den strängen som du vill ska utföra ersättningen i.

Medlem sedan sep. 2001354 inlägg
#5

Tack för de kanon bra svaren antagligen bara jag som är trött då jag inte fattar hur jag ska göra för att få de till att funka.

Brukar juh köra som jag gör nu utan några som helst problem.
Om du kan ge mig ett kod exempel skulle jag vara jätte glad!

Medlem sedan juni 20034 013 inlägg
#6

Så här har du skrivit:

$text = str_replace( "+", "%20" );

Om vi tittar på funktionsanropet står det alltså:

str_replace("+", "%20");

dvs i klartext: "Leta efter tecknet + och ersätt det med %20."

Men det är något som saknas. Var är det Php ska leta efter plustecknet? I telefonkatalogen? IKEA-katalogen? I en världsatlas? Ja, det måste du bestämma dig för och sedan tala om för Php.

Jag skulle dock tro att det är variabeln $text du vill att Php ska söka och ersätta i... Så då skriver vi dit det:

$text = str_replace("+", "%20", $text);

Medlem sedan juni 20034 013 inlägg
#7

Sen behöver du ju inte sätta $text lika med det hela, utan det räcker om du returnerar resultatet:

function strmellan($text)
{
return str_replace("+", "%20", $text);
}

Medlem sedan sep. 2001354 inlägg
#8

Ahhhhhhhh nu fattade jag!
Tack så mycket!!!

Får ta i med en dålig och urtjatad ursäkt "jag måste vara trött" ;)

God natt!

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)