/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Brug af " i en split
Fra : Ghashûl


Dato : 04-03-01 20:17

Hej!

Når jeg lige nu sender dette til mit PHP script

"test1 test2" test3 "test4 test5"
Og så bruger split til at dele det op, så ryger det i 5 forskellige
elementer således:
[0] --> "test1
[1] --> test2"
[2] --> test3
[3] --> "test4
[4] --> test5"

Og det jeg ønsker var at det kom således:

[0] --> test1 test2
[1] --> test3
[2] --> test4 test5

Er der overhovedet nogen mulighed for at kunne gøre det således?
Al hjælp ville være dejligt.
Tusind tak, på forhånd.

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629
E-mail: stefan@bruhn.to
URL: http://www.ghashul.dk

 
 
Henrik Hansen (04-03-2001)
Kommentar
Fra : Henrik Hansen


Dato : 04-03-01 21:17

Ghashûl <ghashul@ghashul.dk> wrote:

> Hej!
>
> Når jeg lige nu sender dette til mit PHP script
>
> "test1 test2" test3 "test4 test5"
> Og så bruger split til at dele det op, så ryger det i 5 forskellige

$str = "\"test1 test2\" test3 \"test4 test5\"";

$arrStr = split("\"", $str);

echo $arrStr[1];

skulle gøre det, men den giver 2 tomme pladser på 0 og 3 pga
mellemrum, de skal nok rydes ud

--
Henrik Hansen

Ghashûl (04-03-2001)
Kommentar
Fra : Ghashûl


Dato : 04-03-01 22:24

On 04 Mar 2001 21:16:30 +0100, Henrik Hansen <hh@mailserver.dk> wrote:

>Ghashûl <ghashul@ghashul.dk> wrote:
>
> > Hej!
> >
> > Når jeg lige nu sender dette til mit PHP script
> >
> > "test1 test2" test3 "test4 test5"
> > Og så bruger split til at dele det op, så ryger det i 5 forskellige
>
>$str = "\"test1 test2\" test3 \"test4 test5\"";
>
>$arrStr = split("\"", $str);
>
>echo $arrStr[1];
>
>skulle gøre det, men den giver 2 tomme pladser på 0 og 3 pga
>mellemrum, de skal nok rydes ud

Ok, takker.

Er der en smart måde at råde op i arrayet på?


Array
(
[0] =>
[1] => test1 test2
[2] => test3
[3] => test4 test5
[4] =>
)
1

bliver til

Array
(
[0] => test1 test2
[1 => test3 //her var der et mellemrum før og efter
[2] => test4 test5
)
1

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629
E-mail: stefan@bruhn.to
URL: http://www.ghashul.dk

Henrik Hansen (04-03-2001)
Kommentar
Fra : Henrik Hansen


Dato : 04-03-01 23:27

Ghashûl <ghashul@ghashul.dk> wrote:

> Er der en smart måde at råde op i arrayet på?
> Så
>
> Array
> (
> [0] =>
> [1] => test1 test2
> [2] => test3
> [3] => test4 test5
> [4] =>
> )
> 1

while (list ($key, $val) = each ($array)) {
if(empty($array[$key])) {
// ved ikke lige om det virker
unset($array[$key]);
} else {
// af med widthspace
$array[$key] = trim($array[$val]);
}
}

--
Henrik Hansen

Ghashûl (05-03-2001)
Kommentar
Fra : Ghashûl


Dato : 05-03-01 15:32

On 04 Mar 2001 23:26:35 +0100, Henrik Hansen <hh@mailserver.dk> wrote:

>Ghashûl <ghashul@ghashul.dk> wrote:
>
> > Er der en smart måde at råde op i arrayet på?
> > Så
> >
> > Array
> > (
> > [0] =>
> > [1] => test1 test2
> > [2] => test3
> > [3] => test4 test5
> > [4] =>
> > )
> > 1
>
>while (list ($key, $val) = each ($array)) {
> if(empty($array[$key])) {
> // ved ikke lige om det virker
> unset($array[$key]);
> } else {
> // af med widthspace
> $array[$key] = trim($array[$val]);
> }
>}

Hey!

Tusind tak. Det virkede først ikke men så søge jeg på PHP.net efter
list og fandt ud af jeg skulle bruge sort på mit array først.

Det har jeg så gjort og nu kører det bare!

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629
E-mail: stefan@bruhn.to
URL: http://www.ghashul.dk

Ghashûl (05-03-2001)
Kommentar
Fra : Ghashûl


Dato : 05-03-01 16:00

On Mon, 05 Mar 2001 15:32:14 +0100, Ghashûl <ghashul@ghashul.dk>
wrote:

>Hey!
>
>Tusind tak. Det virkede først ikke men så søge jeg på PHP.net efter
>list og fandt ud af jeg skulle bruge sort på mit array først.
>
>Det har jeg så gjort og nu kører det bare!
>


Og så alligevel ikke, eksempel:

$keywords = "test1 test2 test3 \"test4 test5\"";
$words = split("\"", $keywords);

sort ($words);
while (list ($key, $val) = each ($words)) {
$words[$key] = trim($words[$key]);
if(empty($words[$key])) {
unset($words[$key]);
}
}
sort ($words);
reset ($words);



Array
(
[0] => test1 test2 test3
[1] => test4 test5
)
1

Ved du hvordan man slipper uden om det problem?

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629
E-mail: stefan@bruhn.to
URL: http://www.ghashul.dk

Henrik Hansen (05-03-2001)
Kommentar
Fra : Henrik Hansen


Dato : 05-03-01 16:08

Ghashûl <ghashul@ghashul.dk> wrote:

> Ved du hvordan man slipper uden om det problem?
>

Det ser da korrekt nok ud for mig, hvad er problemet?

--
Henrik Hansen

Ghashûl (05-03-2001)
Kommentar
Fra : Ghashûl


Dato : 05-03-01 17:27

On 05 Mar 2001 16:08:00 +0100, Henrik Hansen <hh@mailserver.dk> wrote:

>Ghashûl <ghashul@ghashul.dk> wrote:
>
> > Ved du hvordan man slipper uden om det problem?
> >
>
>Det ser da korrekt nok ud for mig, hvad er problemet?

test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
er inden for " ".

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7223629
E-mail: stefan@bruhn.to
URL: http://www.ghashul.dk

Henrik Hansen (05-03-2001)
Kommentar
Fra : Henrik Hansen


Dato : 05-03-01 20:30

Ghashûl <ghashul@ghashul.dk> wrote:

> >Det ser da korrekt nok ud for mig, hvad er problemet?
>
> test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
> er inden for " ".

nå for hulen, well så må du have en ekstra split ind et sted :)

--
Henrik Hansen

Ghashûl (05-03-2001)
Kommentar
Fra : Ghashûl


Dato : 05-03-01 20:40

On 05 Mar 2001 20:30:27 +0100, Henrik Hansen <hh@mailserver.dk> wrote:

>Ghashûl <ghashul@ghashul.dk> wrote:
>
> > >Det ser da korrekt nok ud for mig, hvad er problemet?
> >
> > test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
> > er inden for " ".
>
>nå for hulen, well så må du have en ekstra split ind et sted :)

Yay, men jeg kan ikke lige regne ud hvordan det skal gøres.
Når det bliver delt op bliver "erne jo fjernet. Så man kan bagefter
ikke se at de første ikke skulle have hørt sammen, men de sidste
skulle.

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://www.ghashul.dk

Henrik Hansen (05-03-2001)
Kommentar
Fra : Henrik Hansen


Dato : 05-03-01 20:43

Ghashûl <look@my-sig.ghashul.dk> wrote:

> On 05 Mar 2001 20:30:27 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
>
> >Ghashûl <ghashul@ghashul.dk> wrote:
> >
> > > >Det ser da korrekt nok ud for mig, hvad er problemet?
> > >
> > > test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
> > > er inden for " ".
> >
> >nå for hulen, well så må du have en ekstra split ind et sted :)
>
> Yay, men jeg kan ikke lige regne ud hvordan det skal gøres.
> Når det bliver delt op bliver "erne jo fjernet. Så man kan bagefter
> ikke se at de første ikke skulle have hørt sammen, men de sidste
> skulle.

Well nu ved jeg ikke hvordan dine linjer ser ud, men i dette tilfæle
ved du jo at $array[0] er dem uden for " ", og $array[1] er dem inden
i, ved ikke om dette er gældende for alle dine linjer.

--
Henrik Hansen

Ghashûl (05-03-2001)
Kommentar
Fra : Ghashûl


Dato : 05-03-01 21:08

On 05 Mar 2001 20:43:06 +0100, Henrik Hansen <hh@mailserver.dk> wrote:

>Ghashûl <look@my-sig.ghashul.dk> wrote:
>
> > On 05 Mar 2001 20:30:27 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
> >
> > >Ghashûl <ghashul@ghashul.dk> wrote:
> > >
> > > > >Det ser da korrekt nok ud for mig, hvad er problemet?
> > > >
> > > > test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
> > > > er inden for " ".
> > >
> > >nå for hulen, well så må du have en ekstra split ind et sted :)
> >
> > Yay, men jeg kan ikke lige regne ud hvordan det skal gøres.
> > Når det bliver delt op bliver "erne jo fjernet. Så man kan bagefter
> > ikke se at de første ikke skulle have hørt sammen, men de sidste
> > skulle.
>
>Well nu ved jeg ikke hvordan dine linjer ser ud, men i dette tilfæle
>ved du jo at $array[0] er dem uden for " ", og $array[1] er dem inden
>i, ved ikke om dette er gældende for alle dine linjer.

Nej, problemet er at det er en søgebox så jeg ved ikke hvad folk kan
finde på at kaste i den, det er det der gør det så hulens svært ;)

Men det må jo nødvendigvis kunne lade sig gøre, vidner f.x. Google.

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://www.ghashul.dk

Jonas Häggqvist (07-03-2001)
Kommentar
Fra : Jonas Häggqvist


Dato : 07-03-01 13:40

On Mon, 05 Mar 2001 21:07:47 +0100, Ghashûl <look@my-sig.ghashul.dk>
wrote:

>On 05 Mar 2001 20:43:06 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
>
>>Ghashûl <look@my-sig.ghashul.dk> wrote:
>>
>> > On 05 Mar 2001 20:30:27 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
>> >
>> > >Ghashûl <ghashul@ghashul.dk> wrote:
>> > >
>> > > > >Det ser da korrekt nok ud for mig, hvad er problemet?
>> > > >
>> > > > test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
>> > > > er inden for " ".
>> > >
>> > >nå for hulen, well så må du have en ekstra split ind et sted :)
>> >
>> > Yay, men jeg kan ikke lige regne ud hvordan det skal gøres.
>> > Når det bliver delt op bliver "erne jo fjernet. Så man kan bagefter
>> > ikke se at de første ikke skulle have hørt sammen, men de sidste
>> > skulle.
>>
>>Well nu ved jeg ikke hvordan dine linjer ser ud, men i dette tilfæle
>>ved du jo at $array[0] er dem uden for " ", og $array[1] er dem inden
>>i, ved ikke om dette er gældende for alle dine linjer.
>
>Nej, problemet er at det er en søgebox så jeg ved ikke hvad folk kan
>finde på at kaste i den, det er det der gør det så hulens svært ;)
>
>Men det må jo nødvendigvis kunne lade sig gøre, vidner f.x. Google.
>

$words = explode(" ",stripslashes($pattern));
foreach ($words as $word) {
   if (substr($word, 0,1)=='"') {
      $begin = 1;
      $i++;
      $word = substr($word, 1);
   }

   if ($word<>"") {
      if (!$begin) { $i++; $match[$i] = $word; }
      else { $match[$i] .= $word." "; }
   }

   if(substr($word, -1)=='"') {
      $begin = 0;
      $match[$i] = substr(chop($match[$i]), 0, -1);
   }
}

print_r($match);

Bøvlet kode, der sikkert kunne laves meget smartere, men så vidt jeg
kan se, så virker det i det mindste.

--
Jonas Häggqvist

Ghashûl (07-03-2001)
Kommentar
Fra : Ghashûl


Dato : 07-03-01 17:20

On Wed, 07 Mar 2001 13:39:49 +0100, Jonas Häggqvist <jfh@adr.dk>
wrote:

>On Mon, 05 Mar 2001 21:07:47 +0100, Ghashûl <look@my-sig.ghashul.dk>
>wrote:
>
>>On 05 Mar 2001 20:43:06 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
>>
>>>Ghashûl <look@my-sig.ghashul.dk> wrote:
>>>
>>> > On 05 Mar 2001 20:30:27 +0100, Henrik Hansen <hh@mailserver.dk> wrote:
>>> >
>>> > >Ghashûl <ghashul@ghashul.dk> wrote:
>>> > >
>>> > > > >Det ser da korrekt nok ud for mig, hvad er problemet?
>>> > > >
>>> > > > test1 test2 test3 skulle gerne være i separate søgefelter, da de ikke
>>> > > > er inden for " ".
>>> > >
>>> > >nå for hulen, well så må du have en ekstra split ind et sted :)
>>> >
>>> > Yay, men jeg kan ikke lige regne ud hvordan det skal gøres.
>>> > Når det bliver delt op bliver "erne jo fjernet. Så man kan bagefter
>>> > ikke se at de første ikke skulle have hørt sammen, men de sidste
>>> > skulle.
>>>
>>>Well nu ved jeg ikke hvordan dine linjer ser ud, men i dette tilfæle
>>>ved du jo at $array[0] er dem uden for " ", og $array[1] er dem inden
>>>i, ved ikke om dette er gældende for alle dine linjer.
>>
>>Nej, problemet er at det er en søgebox så jeg ved ikke hvad folk kan
>>finde på at kaste i den, det er det der gør det så hulens svært ;)
>>
>>Men det må jo nødvendigvis kunne lade sig gøre, vidner f.x. Google.
>>
>
>$words = explode(" ",stripslashes($pattern));
>foreach ($words as $word) {
>   if (substr($word, 0,1)=='"') {
>      $begin = 1;
>      $i++;
>      $word = substr($word, 1);
>   }
>
>   if ($word<>"") {
>      if (!$begin) { $i++; $match[$i] = $word; }
>      else { $match[$i] .= $word." "; }
>   }
>
>   if(substr($word, -1)=='"') {
>      $begin = 0;
>      $match[$i] = substr(chop($match[$i]), 0, -1);
>   }
>}
>
>print_r($match);
>
>Bøvlet kode, der sikkert kunne laves meget smartere, men så vidt jeg
>kan se, så virker det i det mindste.

Yes, det ser faktisk ud til at virke perfekt!!
Tusind tak for hjælpen, hvis jeg så nu får bygget min SQL ordenligt
kan jeg få lavet den vilde søgemaskine ;)

--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://www.ghashul.dk

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste