Skip array key in foreach loop?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
JAB Creations
DevNet Resident
Posts: 2341
Joined: Thu Jan 13, 2005 6:44 pm
Location: Sarasota Florida
Contact:

Skip array key in foreach loop?

Post by JAB Creations »

How can we skip a key in an array during a foreach loop? The function in question starts on line 178...

Code: Select all

<?php
$regex_a = '/^(([0-9a-f]{1,2}){3}|transparent|none)?$/';
 
function validate_array($regex, $var)
{
 if ($validity != '1')
 {
  if (!preg_match($regex, $var)) {return false;}
 }
 return true;
}
 
foreach($_POST as $key => $value) {if(!validate_array($regex_a,$value)) {$validity = '1'; break;}}
 
 
if (!isset($validity))
{
$user_theme = implode(".", $_POST);
 
$compressed = gzcompress($user_theme, 9);
 
$var_12 = '24m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489
cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2
489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj
890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4
92484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2
489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc248
9jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj89
0j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492
484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj248
9jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j
89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4924
84224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj248
9jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j
89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4924
84224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj248
9jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j
89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4924
84224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj248
9jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489j
c4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j
89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd4924
84224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489
jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4
289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89
j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484
224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2
489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc428
9cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24
fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224
m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489
jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj2
8cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82
489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89
fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8
924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj
2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj8248
9jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj
289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd892
4jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj24
98j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc
2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289
j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd
2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j
2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc24
89jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2
489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd24
98jd492484224m89fj289j2489fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j24
89cj2489jf2489jd8924jd2498jd492484224m89fj289j2489fj890j89j24fj82489jc2489j
c2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498jd492484224m89fj289j2489
fj890j89j24fj82489jc2489jc2489jc4289cj28cj2498j2489cj2489jf2489jd8924jd2498j
d492484224m89fj289j2489fj890j89j24fj82489jc248912311455234522354234234234
234324542352454525424477357536735635245245245245245243563461';
 
$var_23 = gzcompress($var_12, 9);
 
//setcookie('user_theme1',$user_theme,time()+2592000,'/');
//setcookie('user_theme2',$compressed,time()+2592000,'/');
/*
Cookie 4KB Limit = 4085 characters!!!!!!!!!!!!
*/
setcookie('user_theme3',$var_12,time()+2592000,'/');
setcookie('user_theme4',$var_23,time()+2592000,'/');
 
 
echo strlen($var_12).'<br /><br />';
echo strlen($var_23);
 
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>PHP Serverside Validation of CSS post data</title>
<style type="text/css">
body,html {font-family: monospace;}
b {color: #00f;}
b.bad {color: #f00;}
b.good {color: #0f0;}
div.overflow {height: 200px; overflow: auto; width: 40%;}
</style>
</head>
<body>
 
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<fieldset>
<input name="ce000" value="000" />
<input name="ce001" value="fff" />
<input name="ce002" value="ff0" />
<input name="ce003" value="00f" />
<input name="ce010" value="a1b" />
<input name="ce011" value="7f6" />
<input name="ce012" value="transparent" />
<input name="ce013" value="1f" />
<input name="ce020" value="2f6" />
<input name="ce021" value="3f6" />
<input name="ce022" value="4f6" />
<input name="ce023" value="5f6" />
<input name="ce030" value="6f6" />
<input name="ce031" value="7d6" />
<input name="ce032" value="" />
<input name="ce033" value="" />
<input name="ce040" value="" />
<input name="ce041" value="" />
<input name="ce042" value="" />
<input name="ce043" value="" />
<input name="ce050" value="" />
<input name="ce051" value="" />
<input name="ce052" value="" />
<input name="ce053" value="" />
<input name="ce060" value="" />
<input name="ce061" value="" />
<input name="ce062" value="" />
<input name="ce063" value="" />
<input name="ce070" value="" />
<input name="ce071" value="" />
<input name="ce072" value="" />
<input name="ce073" value="" />
<input name="ce080" value="" />
<input name="ce081" value="" />
<input name="ce082" value="" />
<input name="ce083" value="" />
<input name="ce090" value="" />
<input name="ce091" value="" />
<input name="ce092" value="" />
<input name="ce093" value="" />
<br style="clear: both;" />
<!--
<label for="position" style="border: #000 dotted 1px; font-size: 18px;">Choose Regex Position: 
<select id="position" name="position">
 <option value="all">Display all form names and values.</option>
 <option value="0">Name value ends with '0'.</option>
 <option value="1">Name value ends with '1'.</option>
 <option value="2">Name value ends with '2'.</option>
 <option value="3">Name value ends with '3'.</option>
</select>
</label>
-->
<input style="display: block; width: 60%;" type="submit" value="Validate Form Data" />
</fieldset>
</form>
 
<div>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$comma_separated = implode(".", $_POST);
echo '<p><b>Imploded Post Data:</b> '.$comma_separated.'</p>'."\n";
}
 
echo '<div class="overflow">';
//$regex_a = '/^(([a-f0-9]{3})|([a-f0-9]{6}))$/';
$regex_a = '/^(([0-9a-f]{1,2}){3}|transparent|none)?$/';
$regex_b = '/^[a-f0-9]{6}$/';
 
 
function validate__clientside_array($regex, $var)
{
foreach($_POST as $key => $value)
 if ($validity != '1')
 {
  if (preg_match($regex, $var)) {echo '<b class="good">'.$key.' = '.$var.'</b> is a <b class="good">match</b>!</b><br />'."\n";}
  else {echo '<b class="bad">'.$var.'</b> not a <b class="bad">match</b>!</b><br />'; return false;}
 }
 return true;
}
 
if(!validate__clientside_array($regex_a,$value)) {$validity = '1';}
 
echo '</div>';
if (isset($validity)) {echo '<br />The array <b class="bad">contains invalid data</b>!';}
else {echo '<br />The array contains <b class="good">only valid data</b>.';}
 
echo 'hi mom<br />';
?>
<p>Valid data includes 'transparent', short-hand hexidecimal (fff, 0ff, 123, etc), and regular hexidecimal values.</p>
 
<p>Any other data <b><i>should</i></b> trigger an error and in which case all the form data should be rejected as a whole!</p>
 
</div>
</body>
</html>
User avatar
JAB Creations
DevNet Resident
Posts: 2341
Joined: Thu Jan 13, 2005 6:44 pm
Location: Sarasota Florida
Contact:

Re: Skip array key in foreach loop?

Post by JAB Creations »

Ah, this was much simpler then I imagined it would be, changing line 181...

Code: Select all

if ($validity != '1')

Code: Select all

if ($validity != '1' && $key != 'ce002')
Post Reply