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... 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 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.. 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 ?> 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.. Link to comment https://forums.phpfreaks.com/topic/87401-solved-stop-and-continue/#findComment-447173 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.