View Single Post
  #5  
Old 02-12-2008, 12:36 AM
cheesegrits's Avatar
cheesegrits cheesegrits is offline
 
Join Date: May 2006
Posts: 500
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

By the look of the code on this thread and the other one we were talking on, I'm guessing you come from a C programming background. You can use a lot of C style techniques in PHP (without the need for all that nasty malloc'ing!), but PHP provides a lot of much easier ways round a lot of common tasks.

Tefra already pointed out using 'explode' to chunk up a string into an array. You might also want to look at some of the other array functions, like array_pop.

As an example, a common requirement is to separate a filename from a directory path. Instead of doing it the C way with a tail recursive function doing substr's by steam, you would do it something like this:

Code:
$dir = '/some/path/to/a/file.txt';
$path_array = explode('/',$dir);
$file = array_pop($path_array);
$path = implode('/',$path_array);
... so $file now contains 'file.txt' and $path is '/some/path/to/a'.

You might want to consider recoding the stuff you posted on that other thread using arrays rather than doing string manipulation, if nothing else as an exercize in getting used to The Tao of PHP. PHP makes that kind of tokenizing and stack processing soooo easy ... I actually break out in hives whenever I have to actually do any serious C/C++ coding these days.

And just in case you didn't know, getting function descriptions is as easy as ...

http://www.php.net/array_pop

... or whatever function you need.

-- hugh
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01512 seconds
  • Memory Usage 1,764KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete