nuxy Posted January 23, 2008 Share Posted January 23, 2008 Well, I've made a script that makes random words(letter sequences), but my here is my problem. It's not really a problem, just a feature I want to enhance. The script will make millions/billions of letter sequences, but that takes a long time. What I want to do is to be able to stop the script, and then continue it at a later point, from that original point I stopped it. Say it came to the letter sequence "as1s" and then I stop it, the next time it should go on from "as1s" and make "as1t" and so forth. Here is my current script, a bit messy, but should be doable. function auto() { global $mysql; echo 'Beginning to add hashes..<br><form method="post" action="?auto"> <input type="submit" value="Show No Output" name="blah"></form><br><br>'; $chars = '1234567890abcdefghijklmnopqrstuvwxyz'; for($next[0]=0;$next[0]<=(strlen($chars)-1);$next[0]++) { for($next[1]=0;$next[1]<=(strlen($chars)-1);$next[1]++) { for($next[2]=0;$next[2]<=(strlen($chars)-1);$next[2]++) { for($next[3]=0;$next[3]<=(strlen($chars)-1);$next[3]++) { for($next[4]=0;$next[4]<=(strlen($chars)-1);$next[4]++) { for($next[5]=0;$next[5]<=(strlen($chars)-1);$next[5]++) { for($next[6]=0;$next[6]<=(strlen($chars)-1);$next[6]++) { $string = ''; if ($next[0]) $string .= $chars[$next[0]]; if ($next[1]) $string .= $chars[$next[1]]; if ($next[2]) $string .= $chars[$next[2]]; if ($next[3]) $string .= $chars[$next[3]]; if ($next[4]) $string .= $chars[$next[4]]; if ($next[5]) $string .= $chars[$next[5]]; if ($next[6]) $string .= $chars[$next[6]]; // otehr processing stuff not rellative here.. } } } } } } } } Also, if anyone knows how to optimize, well, not really optimize, but another way to do this aswell, I would appreciate it. Anyone have an idea how I can make this feature? Thank you in advance... Quote Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/ Share on other sites More sharing options...
cooldude832 Posted January 23, 2008 Share Posted January 23, 2008 What I do is database all the phrases you made, of course this reslts in having to recheck the table on each itteration for repeats Quote Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/#findComment-447081 Share on other sites More sharing options...
nuxy Posted January 23, 2008 Author Share Posted January 23, 2008 That is my problem, i'm already checking the hashes against a database. But anyways, I've been working on it, founda partial solution. function auto() { global $mysql; $chars = '1234567890abcdefghijklmnopqrstuvwxyz'; echo 'Loading Config: '; $datafeed = file_get_contents('stats.ini'); $datafile['new'] = split("\n", $datafeed); foreach($datafile['new'] as $varline) { $vars = split(' = ', $varline); $var[$vars[0]] = $vars[1]; } $pre[0] = $var['next[0]']; $pre[1] = $var['next[1]']; $pre[2] = $var['next[2]']; $pre[3] = $var['next[3]']; $pre[4] = $var['next[4]']; $pre[5] = $var['next[5]']; $pre[6] = $var['next[6]']; echo 'Loaded<br><pre>'; print_r($pre); echo '</pre><br><br>'; for($next[0]=$pre[0];$next[0]<=(strlen($chars)-1);$next[0]++) { for($next[1]=$pre[1];$next[1]<=(strlen($chars)-1);$next[1]++) { for($next[2]=$pre[2];$next[2]<=(strlen($chars)-1);$next[2]++) { for($next[3]=$pre[3];$next[3]<=(strlen($chars)-1);$next[3]++) { for($next[4]=$pre[4];$next[4]<=(strlen($chars)-1);$next[4]++) { for($next[5]=$pre[5];$next[5]<=(strlen($chars)-1);$next[5]++) { $fp = fopen('stats.ini', 'w'); $datafeed = file_get_contents('stats.ini'); $datafile['new'] = split("\n", $datafeed); foreach($datafile['new'] as $varline) { $vars = split(' = ', $varline); $var[$vars[0]] = $vars[1]; } $var['next[0]'] = (empty($var['next[0]'])) ? 0 : $var['next[0]']; $var['next[1]'] = (empty($var['next[1]'])) ? 0 : $var['next[1]']; $var['next[2]'] = (empty($var['next[2]'])) ? 0 : $var['next[2]']; $var['next[3]'] = (empty($var['next[3]'])) ? 0 : $var['next[3]']; $var['next[4]'] = (empty($var['next[4]'])) ? 0 : $var['next[4]']; $var['next[5]'] = (empty($var['next[5]'])) ? 0 : $var['next[5]']; $var['next[6]'] = (empty($var['next[6]'])) ? 0 : $var['next[6]']; foreach($var as $key => $vl) fputs($fp, $key . " = " . $vl . "\n"); fclose($fp); for($next[6]=$pre[6];$next[6]<=(strlen($chars)-1);$next[6]++) { $string = ''; if ($next[0]) $string .= $chars[$next[0]]; if ($next[1]) $string .= $chars[$next[1]]; if ($next[2]) $string .= $chars[$next[2]]; if ($next[3]) $string .= $chars[$next[3]]; if ($next[4]) $string .= $chars[$next[4]]; if ($next[5]) $string .= $chars[$next[5]]; if ($next[6]) $string .= $chars[$next[6]]; // not relevant to the topic } } } } } } } } Still debugging, so I'm still open to ideas.. Quote Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/#findComment-447107 Share on other sites More sharing options...
sasa Posted January 23, 2008 Share Posted January 23, 2008 try <?php function my_next($a, $car = '1234567890abcdefghijklmnopqrstuvwxyz'){ $num = strlen($car); $add = 1; $out = ''; for ($i = strlen($a); $i > 0;){ $x = strpos($car, $a[--$i]) + $add; $out = $car[$x % $num].$out; $add = floor($x / $num); } if ($add) $out = $car[0].$out; return $out; } $start = 'zx'; for ($i = 0; $i <20; $i++){ // or some other condition echo $start = my_next($start),"\n"; } // remember last $start and next time use it ?> Quote Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/#findComment-447130 Share on other sites More sharing options...
nuxy Posted January 23, 2008 Author Share Posted January 23, 2008 I got my script working, it is actaully very precise now. Thanks everyone.. Quote Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/#findComment-447173 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.