Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen
1
| preg_match("/\"(.*)\"/si", $form_to_strip, $form_values); |
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen
DeathKnight schreef op 23 april 2003 @ 20:14:
Ik heb al iets geloof ik
PHP:
1 preg_match("/\"(.*)\"/si", $form_to_strip, $form_values);
* Tux had net een ingewikkelde char-for-char checker zitten maken
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?php $string = "Dit is \"een\" voorbeeldstring. Hij \"is wel wat\" kort"; $output = Array (); for ($i = 0; $i < strlen ($string); $i++) { if ($string[$i] == "\"" && $inquotes == false) { $inquotes = true; } elseif ($string[$i] == "\"" && $inquotes == true) { $inquotes = false; $output[] = $temp; $temp = ""; } elseif ($inquotes == true) { $temp .= $string[$i]; } } echo $string . "<br />"; echo "<pre>"; print_r ($output); echo "</pre>"; ?> |
[ Voor 27% gewijzigd door Tux op 23-04-2003 20:17 ]
The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.
Sorry voor al het werkTux schreef op 23 april 2003 @ 20:16:
[...]
* Tux had net een ingewikkelde char-for-char checker zitten maken
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?php $string = "Dit is \"een\" voorbeeldstring. Hij \"is wel wat\" kort"; $output = Array (); for ($i = 0; $i < strlen ($string); $i++) { if ($string[$i] == "\"" && $inquotes == false) { $inquotes = true; } elseif ($string[$i] == "\"" && $inquotes == true) { $inquotes = false; $output[] = $temp; $temp = ""; } elseif ($inquotes == true) { $temp .= $string[$i]; } } echo $string . "<br />"; echo "<pre>"; print_r ($output); echo "</pre>"; ?>
Maar ik blijf toch bij mijn iets compactere notatie
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen
Hoe wil je met jou korte notitatie de quoted strings 2 .. n uit een string vissen?DeathKnight schreef op 23 april 2003 @ 20:24:
[...]
Sorry voor al het werk.
Maar ik blijf toch bij mijn iets compactere notatie
Dus Tux, ik zal eens ff naar jou productie kijken
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen
Ow .. ik programmeer niet meer
Daarvoor hebben ze preg_match_all uitgevondenstekkel schreef op 23 April 2003 @ 20:26:
[...]
Hoe wil je met jou korte notitatie de quoted strings 2 .. n uit een string vissen?
.
Mocht iemand het nog eens handig vinden:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| $quotes_position = array(); for($count = 0; $count <= strlen($form_to_strip); $count++) { if(substr($form_to_strip, $count, 1) == "\"") { $quotes_position[] = $count; } } $arrayFormValues = array(); $commas_count = -1; for($count = 0; $count <= (count($quotes_position) / 2) -1; $count++) { $s = $commas_count + 1; $l = $commas_count + 2; $start = $quotes_position[$s] +1; $length = $quotes_position[$l] - $start; $arrayFormValues[] = substr($form_to_strip, $start, $length); $commas_count++; $commas_count++; } print_r($arrayFormValues); |
Het kan ongetwijfeld compacter, maar ik vind dat ik hier onderhand wel lang genoeg over gedaan heb.
[ Voor 24% gewijzigd door me1299 op 23-04-2003 21:56 ]
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen
Raar want hier werkte die perfect met het testscriptje wat ik gegeven heb.DeathKnight schreef op 23 April 2003 @ 21:50:
Zo nou Tux z'n progsel bleek hier niet echt te werken. Dus ik ben zelf maar aan het coden geslagen. Nu werkt het allemaal.
Mocht iemand het nog eens handig vinden:
Het kan ongetwijfeld compacter, maar ik vind dat ik hier onderhand wel lang genoeg over gedaan heb.
Zal wel een verschil in PHP versie zijn ofzow
Kreeg ik als output. Jij dan niet uit dat voorbeeldscript?Dit is "een" voorbeeldstring. Hij "is wel wat" kort
Array
(
[0] => een
[1] => is wel wat
)
[ Voor 17% gewijzigd door Tux op 23-04-2003 23:52 ]
The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.
1
2
3
4
5
6
7
| <?php $result = explode("\"" , "*" . $queryString); for ($i=0 ; $i < (count($result)) ; $i++) { array_splice($result , $i , 1); } print_r($result); ?> |
Wat dit doet is het volgende:
• Het zet een ster voor de string om ervoor te zorgen dat het eerste karakter geen aanhalingsteken is.
• Het explode de string op aanhalingstekens. Door het toevoegen van het sterretje weet ik zeker dat het eerste element van de gecreëerde array geen stuk is dat we willen hebben. Alle gedeeltes die tussen aanhalingstekens stonden staan nu in de oneven elementen van de array, dus: $result[1], $result[3], $result[5], enz.
• Dat wetende, loop ik de array door en haal ik alle even elementen eruit. Om dit te illustreren een voorbeeld:
Hierbij staat elke 0 voor een element dat niet nodig is en elke 1 voor een element dat wel nodig is:
1
2
3
4
| Start: 010101 Na 1e loop (element 0 wordt weggehaald): 10101 Na 2e loop (element 1 wordt weggehaald): 1101 Na 3e loop (element 2 wordt weggehaald): 111 |
Uiteindelijk blijft dus een array over met de stukken die in de originele string tussen aanhalingstekens stonden.
Zo, nu ga ik maar eens slapen
En zo is het maar net.
1
2
3
4
5
6
7
8
| $tekst='<form action="go.php?id=1" method="POST"><input type="hidden" name="amount" value="12" /> <input type="hidden" name="08" value="12">'; preg_match_all("/=\"(.*)\"/U",$tekst,$results); print_r($results[1]); |
Ik ben er hierbij vanuit gegaan dat alle 'values' voorafgegaan worden door een = teken, maar dat kun je eventueel weghalen uit de regexp als dat niet de bedoeling was..
Verwijderd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $tekst='<form action="go.php?id=1" method="POST"><input type="hidden" name="amount" value="12" /> <input type="hidden" name="08" value="12">'; function startElement($parser, $name, $attribs) { foreach($attribs as $k => $v) echo '<li>'.$k.' ->'.$v.'</li>'; } function endElement() {} $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_parse($xml_parser, $tekst); |