Results 1 to 4 of 4

Thread: [RESOLVED] Looping issue

  1. #1
    Join Date
    Jan 2014
    Boston, Massachusetts

    resolved [RESOLVED] Looping issue

    Okay, so I'm writing a simple fishing game loop but I'm having multiple issues. I have some images in a folder, and I set an array with the filename as key and the type of fish as the value.
    I then set it up to do this:
    echo "Nice one! You caught a " . $fish[$rand] . "!";
    and $rand is picking a random fish from the array.

    First, I need a way to output the image of the fish that goes along with the name. I want this to happen upon the submit input button (which I don't know how to hook up).

    Second, right now I have a loop that outputs each file in the img folder. It's also outputting .DS_Store. I'm trying to exclude that from outputting. I have a foreach loop that is attempting to do just that, but I used var_dump on 3 variables and here's the output:
    A) ($filename)
    string(1) "." string(2) ".." string(9) ".DS_Store" string(11) "catfish.gif" string(10) "lmbass.gif" string(10) "minnow.gif" string(9) "perch.gif" string(12) "pickerel.gif" string(10) "shiner.gif" string(10) "smbass.gif" string(11) "sunfish.gif"

    B) ($filepath)
    string(5) "/img." string(6) "/img.." string(13) "/img.DS_Store" string(15) "/imgcatfish.gif" string(14) "/imglmbass.gif" string(14) "/imgminnow.gif" string(13) "/imgperch.gif" string(16) "/imgpickerel.gif" string(14) "/imgshiner.gif" string(14) "/imgsmbass.gif" string(15) "/imgsunfish.gif"
    The proper filepath should be /img/filename.gif. Also, what are string(5) "/img." and string(6) "/img.."?

    C) ($root_dir)
    Is $root_dir even necessary?

    Third, I want there to be a random chance that they will catch nothing; when a fish is caught, it would say
    echo "Nice one! You caught a " . $fish[$rand] . "!";
    but if nothing is caught it would say
    echo "Uh-oh, looks like that one got away!";
    Last, I have audio that I want to play when a fish is not caught.

    Here's all of my code:

        <div class="container">
          <div class="starter-template">
            <h2>Catch a Fish!</h2>
            <p class="fishes">
              <form action="fishing.php" method="post">
                $fish = array('catfish.gif' => 'catfish', 'lmbass.gif' => 'large-mouth bass', 'smbass.gif' => 'small-mouth bass', 'shiner.gif' => 'shiner', 'perch.gif' => 'perch', 'pickerel.gif' => 'pickerel', 'minnow.gif' => 'minnow', 'sunfish.gif' => 'sunfish');
                $rand = array_rand($fish);
                //link file name (key) to value
                echo "Nice one! You caught a " . $fish[$rand] . "!";
                $files = scandir('img');
                if ($files !== false) {
                    foreach($files as $f) {
                      if ($f == '..' || $f == '.') continue;
                        echo '<li class="fish_pic"><img src="img/'.$f.'" alt="'.$f.'" title="" class="fish"></li>'."\n";
                $files = scandir('img');
                $extensions = array(".txt",".DS_Store");
                // Loop through each filename of scandir
                foreach ($files as $filename) {
                  // Construct a full path
                  $filepath = '/'.'img'.$filename;
                  // Is it a file? If so, get the extension using some function you created
                  if(is_file($filepath)) {
                      $ext = getFileExtension($filename);
                      // Is the file extension not included in the array of forbidden extensions?
                      // Since it is not included, execute code to list the file or whatever
                      if (!in_array($ext,$extensions)) {
                         // Code for files not excluded
            <p><input type="submit" class="btn btn-primary" value="Go Fishing!"></p>
            <audio controls>
              <source src="audio/missed.ogg" type="audio/ogg">
              <source src="audio/missed.mp3" type="audio/mpeg">
              <p>Your browser does not support the audio element.</p>
            <div class="clearfix"></div>
          </div><!-- close .starter-template -->
        </div><!-- /.container -->
    One last note, my folder/file structure are all at the root. So fishing.php and /audio and /css and /img are all on the same level.

    I know this is a lot but I've googled every single issue and tried numerous things and nothing seems to work.

    Any help I could get would be extremely appreciated!
    Last edited by winthropite; 02-05-2014 at 10:35 PM. Reason: formatting

  2. #2
    Join Date
    Aug 2004
    I like to use glob() to get an array of files. That way you can use its wildcard capability to limit what it picks up, e.g. "*.gif" when getting all the images.
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  3. #3
    Join Date
    Jan 2014
    Boston, Massachusetts
    Cool, I'll try that. Any idea about the other issues?

  4. #4
    Join Date
    Aug 2004
    If you are talking about detecting the submit input button, that depends on how it is defined in your HTML. If it is within a form and the form is using method="post", then it will be set in $_POST['button_name'], where 'button_name' is whatever value you assigned to the name attribute of the button's input element. If you used a "get" action instead of "post", then it will be in $_GET['button_name'].
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.09194 seconds
  • Memory Usage 2,886KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (4)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (73):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates