[PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread German Geek
Hi All,

We have an application that generates dynamic ebooks. One of the (minor)
problems (but yet annoying) is that when a user comes back to an ebook, they
have to actually delete the cache and reload the page to not get the cached
version which might be wrong because the content or even the flash
application is updated.

It would be neat if we could force a reload of the page, but only with a
special condition like the ebook being updated or the swf. The swf and also
the other resources are not reloaded though, because it is a get request.

Is there a way to force a reload of the browser by maybe changing the
headers? Or do we have to do some fancy stuff like storing a cookie with the
time and sending it back via ajax or something like that?

Just setting the header would be nice...

Maybe the easiest would be to change the link (add a number or something) of
the html page and have a rewrite for all the relative urls as well.

Regards,
Tim

Tim-Hinnerk Heuer

http://www.ihostnz.com
Henny Youngman  - "When I told my doctor I couldn't afford an operation, he
offered to touch-up my X-rays."


Re: [PHP] PHP - user profile page with pic

2009-02-23 Thread 9el
---
Use FreeOpenSourceSoftwares, Stop piracy, Let the developers live. Get
a Free CD of Ubuntu mailed to your door without any cost. Visit :
www.ubuntu.com
--


On Mon, Feb 23, 2009 at 12:25 PM, Jeffery Harris <
jhar...@harris4interactive.com> wrote:

> my level of coding is basic. out of the box is fine as long as it is a good
> one. I do know how to connect to database pull and display records as well
> as set up login. But I guess I have to create a session so that when a user
> logs in only his/her information is shown correct?


Yes, and it would be better for you to have an in depth look into the open
source projects found. Get to analyse them. So, you'll get familiarized with
the advanced well known methods. Learning from them you will be able to
create something better and not reinventing the wheels.

Lenin

>
>
> -Jeff
> - Original Message - From: "9el" 
> Newsgroups: php.general
> To: "jeffery harris" 
> Cc: 
> Sent: Thursday, February 19, 2009 12:40 AM
> Subject: Re: [PHP] PHP - user profile page with pic
>
>
>  The question can be equally rephrased as "How an Atom bom/Spaceship be
>> created"?
>>
>> Answer depends on the level of knowledge you have on coding / developing
>> sites. Woud you be using any framework? or would you use any readymade
>> CMS?
>> Or write everything from scratch?
>>
>> Question can also be generalized further like would php be your developing
>> language? Or you'd develop your own new language out of the box. :)
>>
>> ---
>> Use FreeOpenSourceSoftwares, Stop piracy, Let the developers live. Get
>> a Free CD of Ubuntu mailed to your door without any cost. Visit :
>> www.ubuntu.com
>> --
>>
>>
>> On Thu, Feb 19, 2009 at 9:46 AM, jeffery harris <
>> jhar...@harris4interactive.com> wrote:
>>
>>  Any ideas or tutorials on how to build a user profile page sort of like
>>> facebook?
>>>
>>> -Jeff
>>>
>>>
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>>
>>
>
>


Re: [PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread Per Jessen
German Geek wrote:

> Hi All,
> 
> We have an application that generates dynamic ebooks. One of the
> (minor) problems (but yet annoying) is that when a user comes back to
> an ebook, they have to actually delete the cache and reload the page
> to not get the cached version which might be wrong because the content
> or even the flash application is updated.

Deleting the cache should not be necessary, a reload should be enough.
(it certainly is with Firefox).

> It would be neat if we could force a reload of the page, but only with
> a special condition like the ebook being updated or the swf. The swf
> and also the other resources are not reloaded though, because it is a
> get request.

The request type has nothing to do with it - the browser will do a
conditional GET if the local copy is expired.  Just set the right
expiry time on your files when you serve them, then they will
automatically be checked by the browser.  


/Per


-- 
Per Jessen, Zürich (2.8°C)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread German Geek
Yes, that's what i thought, but with my FF 3.0 the resources (swf,png,jpg)
don't get reloaded. I have to reload the page (after deleting cache).

Something to do with the Apache configuration?

??

Thanks for the reply.

Tim-Hinnerk Heuer

http://www.ihostnz.com
Laurence J. Peter  - "If two wrongs don't make a right, try three."

2009/2/23 Per Jessen 

> German Geek wrote:
>
> > Hi All,
> >
> > We have an application that generates dynamic ebooks. One of the
> > (minor) problems (but yet annoying) is that when a user comes back to
> > an ebook, they have to actually delete the cache and reload the page
> > to not get the cached version which might be wrong because the content
> > or even the flash application is updated.
>
> Deleting the cache should not be necessary, a reload should be enough.
> (it certainly is with Firefox).
>
> > It would be neat if we could force a reload of the page, but only with
> > a special condition like the ebook being updated or the swf. The swf
> > and also the other resources are not reloaded though, because it is a
> > get request.
>
> The request type has nothing to do with it - the browser will do a
> conditional GET if the local copy is expired.  Just set the right
> expiry time on your files when you serve them, then they will
> automatically be checked by the browser.
>
>
> /Per
>
>
> --
> Per Jessen, Zürich (2.8°C)
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


Re: [PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread Per Jessen
German Geek wrote:

> Yes, that's what i thought, but with my FF 3.0 the resources
> (swf,png,jpg) don't get reloaded. I have to reload the page (after
> deleting cache).
> 
> Something to do with the Apache configuration?

Hi Tim,

Try loading up just a single file in FF - one of your graphics for
instance - then hit Ctrl-i to get the info page. That will tell you
exactly how FF sees the file - expiry time etc.


/Per


-- 
Per Jessen, Zürich (2.6°C)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] optimizing space for array of booleans

2009-02-23 Thread leledumbo

Some languages allows to bit-pack structures to save spaces. Since PHP
doesn't have native set data type and operations, will array of booleans be
optimized as such? If not, how can I achieve the same result? I need to save
about 200 boolean values and I guess it's a good idea to use bitsets.

Requirements:
- Easy to use (set, unset, test), so C way to use bitwise operations is
simply rejected.
  I need something like Pascal's set.
- Small space (bit level if possible)

-- 
View this message in context: 
http://www.nabble.com/optimizing-space-for-array-of-booleans-tp22159131p22159131.html
Sent from the PHP - General mailing list archive at Nabble.com.


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread German Geek
2009/2/23 Per Jessen 

> German Geek wrote:
>
> > Yes, that's what i thought, but with my FF 3.0 the resources
> > (swf,png,jpg) don't get reloaded. I have to reload the page (after
> > deleting cache).
> >
> > Something to do with the Apache configuration?
>
> Hi Tim,
>
> Try loading up just a single file in FF - one of your graphics for
> instance - then hit Ctrl-i to get the info page. That will tell you
> exactly how FF sees the file - expiry time etc.
>

Hi Per,

Thanks. But:

This didn't work. ctrl+i brought up my bookmarks. ?? Do i need a special
plugin/extension? Have web developer etc.

I have Firebug but in the net tab the cached resources don't show up when
reloading the page, i guess because they are not reloaded...

So, i can't think of a way how to see that information when it is in cache.

I had followed some examples on the web talking about the e-tag header which
changes the checksum when the file changes, also i remember setting the
expiry to yesterday and things like that... However it all didn't work.

Anyway, i might just force a reload by changing the links every time
dynamically, although it seems a bit overkill :-S.

Tim-Hinnerk Heuer

http://www.ihostnz.com
P. J. O'Rourke  - "Everybody knows how to raise children, except the people
who have them."


>
> /Per
>
>
> --
> Per Jessen, Zürich (2.6°C)
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


Re: [PHP] headers: setting right for browser to force reload at a certain point in time

2009-02-23 Thread Per Jessen
German Geek wrote:

> This didn't work. ctrl+i brought up my bookmarks. ?? Do i need a
> special plugin/extension? Have web developer etc.

Nope, this is standard FF.  Ctrl+i should give you the "Page Info"
window.  Try looking for that in your menubar and pulldowns.




-- 
Per Jessen, Zürich (3.1°C)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] redirecting output for a spawned child process..

2009-02-23 Thread Alpár Török
You can use a PHP workarround. Install a custom ob_handler, that has a
static file descriptor, and writes all output to the file. In order to also
see everything, you need to also activate implicit flush. i know that there
would be lots of elegant ways to do this on linux in C, but AFAIK php
doesn't ofer anything like that.

here's some code (untested)



> bruce wrote:
>
> > hi...
> >
> > got a situation where i have a parent app that spawns children. trying
> > to figure out how to get the output of the spawned/forked children to
> > be written to an external file...
>
> Normally I would use freopen() on stdout and stderr, but that's not
> available in PHP :-(
>
> > can't seem to find any examples of how to accomplish this... do i have
> > to insert something within the child php app itself to redirect the
> > output that's currently being sent to the term? i'd prefer to have the
> > output displayed, as well as redirected...
>
> You basically need to do something about the stdin, stdout and stderr
> file descriptors that your child inherited from the parent at time of
> fork().  I can't seem to find many PHP functions that deal with file
> descriptors though.
>
>
>
> --
> Per Jessen, Zürich (2.6°C)
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Alpar Torok


[PHP] ms-word reading from PHP on linux O.S

2009-02-23 Thread Srinivasa Rao D
Hi all,
  * How better, i can  read ms-word doc files  from PHP on LINUX OS*.On
searching I got *catdoc* softaware.By using this i can read word doc data as
a text.

function catdoc_file($fname)
{

$ret = exec('catdoc -ab '.escapeshellarg($fname) .' 2>&1');

if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
return false;
}

return trim($ret);
}
It is working well.

  *Is there are any other softwares that can fetch text from MS-WORD file?.*


RE: [PHP] ms-word reading from PHP on linux O.S

2009-02-23 Thread Bob McConnell
From: Srinivasa Rao D
> 
>  * How better, i can  read ms-word doc files  from PHP on LINUX
OS*.On
> searching I got *catdoc* softaware.By using this i can read word doc
data as
> a text.

It would be helpful to have a little more context. What do you want to
do with the text you read this way?

When I run across a MS-Word document, my browser is configured to
download it to disk. Then I open it with OpenOffice.write and extract
what I need.

Bob McConnell

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] adding whitespace to a timestamp

2009-02-23 Thread Andrew Ballard
On Sat, Feb 21, 2009 at 1:28 PM, Eric Sherman  wrote:
> I hoping to add a space between the date and the time in this:
>
> $thedate = date('M jS g:i A', $postTIME);
>
> i.e, between* jS* and *g:i*
>
> I've looked around but can't find anything.
>
> Thanks
>
> Eric Sherman
> Multi Media Information

You can put spaces anywhere in that string you want them. What problem
are you having?



Andrew

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] optimizing space for array of booleans

2009-02-23 Thread Virgilio Quilario
> Some languages allows to bit-pack structures to save spaces. Since PHP
> doesn't have native set data type and operations, will array of booleans be
> optimized as such? If not, how can I achieve the same result? I need to save
> about 200 boolean values and I guess it's a good idea to use bitsets.
>
> Requirements:
> - Easy to use (set, unset, test), so C way to use bitwise operations is
> simply rejected.
>  I need something like Pascal's set.
> - Small space (bit level if possible)
>
> --
> View this message in context: 
> http://www.nabble.com/optimizing-space-for-array-of-booleans-tp22159131p22159131.html
> Sent from the PHP - General mailing list archive at Nabble.com.
>

hi,

you should not worry about optimizing boolean values unless you would
store them in database.
anyways, use bitwise operators http://ph.php.net/language.operators.bitwise

virgil
http://www.jampmark.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] multiple choice dropdown box puzzle

2009-02-23 Thread PJ
I think this is a tough one... and way above my head:
PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
Having a bit of a rough time figuring out how to formulate php-mysql to insert 
data into fields using a multiple dropdown box in a form.

to post I am using the following:
snip...
$categoriesIN   = $_POST["categoriesIN"];

...snip...


Choose Categories...
1
2
3
4
5
 

...snip...

$sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
INSERT INTO temp (example) $categoriesIN[$ii]" ;

$result4 = mysql_query($sql4, $db); 
...snip

this does not work! The other posts work like a charm... but this...

I cannot figure out what I should be entering where... I have tried several 
different configurations, but nothing seems to work...

I found this as a model for entering the selections but can't figure out how to 
modify it for my needs:


 Choose your location(s) 
3100
3105
 3503
 3504


What I would like to do is something like the following:

Choose Categories...
History
Temples
Pharaohs and Queens
Cleopatra
Mummies

and going further, I would like to be able to use a table that actually holds 
these values to feed them to the code above. I am sure this is possible but it 
must take some huge knowledge and experience to do it.

BUT ...
as I look at things, I am wondering if the FOR statement in the above should be 
used to do several INSERTs, that is, one $sql(number) per selected category... 
now, would that require many $sqls or many INSERTs within the $sql ?


-- 

Phil Jourdan --- p...@ptahhotep.com
   http://www.ptahhotep.com
   http://www.chiccantine.com


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] multiple choice dropdown box puzzle

2009-02-23 Thread Andrew Ballard
On Mon, Feb 23, 2009 at 10:25 AM, PJ  wrote:
> I think this is a tough one... and way above my head:
> PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
> Having a bit of a rough time figuring out how to formulate php-mysql to 
> insert data into fields using a multiple dropdown box in a form.
>
> to post I am using the following:
> snip...
> $categoriesIN   = $_POST["categoriesIN"];
>
> ...snip...
>
> 
>Choose Categories...
>1
>2
>3
>4
>5
>
>
> ...snip...
>
> $sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
>INSERT INTO temp (example) $categoriesIN[$ii]" ;
>$result4 = mysql_query($sql4, $db);
> ...snip
>
> this does not work! The other posts work like a charm... but this...

You are confusing the PHP and MySQL.



MySQL also has an alternative syntax that you can use to do this in a
single statement:

 0) {
$sql = "INSERT INTO temp (example) VALUES ";
for ($ii = 0; $ii < $count; ++$ii) {
if ($ii > 0) $sql .= ', ';
$sql .=  "('" . mysql_real_escape_string($categoriesIN[$ii]) . "')";
}
}

$result = mysql_query($sql, $db);

?>



Andrew

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] multiple choice dropdown box puzzle

2009-02-23 Thread Afan Pasalic



PJ wrote:

I think this is a tough one... and way above my head:
PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
Having a bit of a rough time figuring out how to formulate php-mysql to insert 
data into fields using a multiple dropdown box in a form.

to post I am using the following:
snip...
$categoriesIN   = $_POST["categoriesIN"];

...snip...


Choose Categories...
1
2
3
4
5
	 


...snip...

$sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
INSERT INTO temp (example) $categoriesIN[$ii]" ;
   
$result4 = mysql_query($sql4, $db); 
...snip

this does not work! The other posts work like a charm... but this...

I cannot figure out what I should be entering where... I have tried several 
different configurations, but nothing seems to work...

I found this as a model for entering the selections but can't figure out how to 
modify it for my needs:


 Choose your location(s) 
3100
3105
 3503
 3504


What I would like to do is something like the following:

Choose Categories...
History
Temples
Pharaohs and Queens
Cleopatra
Mummies

and going further, I would like to be able to use a table that actually holds 
these values to feed them to the code above. I am sure this is possible but it 
must take some huge knowledge and experience to do it.

BUT ...
as I look at things, I am wondering if the FOR statement in the above should be 
used to do several INSERTs, that is, one $sql(number) per selected category... 
now, would that require many $sqls or many INSERTs within the $sql ?


  


first, I think, $categoriesIN is string, but in the form you made it  as 
an array $categoriesIN[]. I think you have to "modify it a little bit, 
something like {$categoriesIN}.'[]'


second, I think the php part "FOR ( $ii = 0 ; $ii < count($categoriesIN) 
; $ii++ )" can't be part of the mysql statement, it should be "outside" 
the statement


FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
{
$sql4 = "INSERT INTO temp (example) $categoriesIN[$ii]" ;   
  
$result4 = mysql_query($sql4, $db); 
}


afan




--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] ms-word reading from PHP on linux O.S

2009-02-23 Thread Jim Lucas
Srinivasa Rao D wrote:
> Hi all,
>   * How better, i can  read ms-word doc files  from PHP on LINUX OS*.On
> searching I got *catdoc* softaware.By using this i can read word doc data as
> a text.
> 
> function catdoc_file($fname)
> {
> 
> $ret = exec('catdoc -ab '.escapeshellarg($fname) .' 2>&1');
> 
> if (preg_match('/^sh: line 1: catdoc/i',$ret)) {
> return false;
> }
> 
> return trim($ret);
> }
> It is working well.
> 
>   *Is there are any other softwares that can fetch text from MS-WORD file?.*
> 

I wrote this routine a few months ago.

$filename = './lflf.doc';
if ( file_exists($filename) ) {

if ( ($fh = fopen($filename, 'r')) !== false ) {

$headers = fread($fh, 0xA00);

# 1 = (ord(n)*1) ; Document has from 0 to 255 characters
$n1 = ( ord($headers[0x21C]) - 1 );

# 1 = ((ord(n)-8)*256) ; Document has from 256 to 63743 
characters
$n2 =   ( ( ord($headers[0x21D]) - 8 ) * 256 );

# 1 = ((ord(n)*256)*256) ; Document has from 63744 to 16775423 
characters
$n3 =   ( ( ord($headers[0x21E]) * 256 ) * 256 );

# 1 = (((ord(n)*256)*256)*256) ; Document has from 16775424 to 
4294965504 characters
$n4 = ( ( ( ord($headers[0x21F]) * 256 ) * 256 ) * 256 );

# Total length of text in the document
$textLength = ($n1 + $n2 + $n3 + $n4);

$extracted_plaintext = fread($fh, $textLength);

# if you want the plain text with no formatting, do this
echo $extracted_plaintext;

# if you want to see your paragraphs in a web page, do this
echo nl2br($extracted_plaintext);

fclose($fh);

}

}


This will grab the plain text out of a word document.  Version 97' - 2003'

It doesn't work for the newest OpenXML document format.

-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
   and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
by William Shakespeare

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Ryan Panning
I have discovered that when I foreach over a RecursiveDirectoryIterator 
(see example below) the $item actually turns into a SplFileInfo object. 
I would expect it to be a RecursiveDirectoryIterator. How do I do a 
hasChildren() on SplFileInfo?


However, if I change it to a non-recursive, DirectoryIterator, $item is 
what I would expect, DirectoryIterator. I've tested this with 5.2.8 and 
5.3b1. I'm guessing this is an issue with my setup as I'm sure I've 
gotten this to work before...



$dir = new RecursiveDirectoryIterator('/path/to/dir');
foreach ($dir as $item) {
print get_class($item) . "\r\n";
}

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: multiple choice dropdown box puzzle

2009-02-23 Thread Brent Baisley
It's actually a very simple solution, and you should do it all in a
single INSERT. Putting INSERTs in a loop will kill your performance
when you try to scale.

$sql4 = 'INSERT INTO temp (example) VALUES (' . implode('),(',
$_POST["categoriesIN"]) . ')';
$result4 = mysql_query($sql4, $db);

That example does not sanitize the data before inserting.

Brent

On Mon, Feb 23, 2009 at 10:25 AM, PJ  wrote:
> I think this is a tough one... and way above my head:
> PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
> Having a bit of a rough time figuring out how to formulate php-mysql to 
> insert data into fields using a multiple dropdown box in a form.
>
> to post I am using the following:
> snip...
> $categoriesIN   = $_POST["categoriesIN"];
>
> ...snip...
>
> 
>Choose Categories...
>1
>2
>3
>4
>5
>
>
> ...snip...
>
> $sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
>INSERT INTO temp (example) $categoriesIN[$ii]" ;
>$result4 = mysql_query($sql4, $db);
> ...snip
>
> this does not work! The other posts work like a charm... but this...
>
> I cannot figure out what I should be entering where... I have tried several 
> different configurations, but nothing seems to work...
>
> I found this as a model for entering the selections but can't figure out how 
> to modify it for my needs:
>
> 
>  Choose your location(s) 
> 3100
> 3105
>  3503
>  3504
> 
>
> What I would like to do is something like the following:
> 
>Choose Categories...
>History
>Temples
>Pharaohs and Queens
>Cleopatra
>Mummies
>
> and going further, I would like to be able to use a table that actually holds 
> these values to feed them to the code above. I am sure this is possible but 
> it must take some huge knowledge and experience to do it.
>
> BUT ...
> as I look at things, I am wondering if the FOR statement in the above should 
> be used to do several INSERTs, that is, one $sql(number) per selected 
> category... now, would that require many $sqls or many INSERTs within the 
> $sql ?
>
>
> --
>
> Phil Jourdan --- p...@ptahhotep.com
>   http://www.ptahhotep.com
>   http://www.chiccantine.com
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:http://lists.mysql.com/mysql?unsub=brentt...@gmail.com
>
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Philip Graham
Here's a RecursiveDirectoryIterator class I've written and find quite useful:

mailto:phi...@lightbox.org";>Philip Graham
 */
class Util_RecursiveFileIterator implements Iterator {
CONST SHOW_DOT_FILES = true;

private $_basePath;
private $_curDirIter;
private $_dirStack;
private $_showDots;

/**
 * Constructor.  By default the iteration will skip any files that begin
 * with a '.' character but this can be changed by passing the class
 * constant SHOW_DOT_FILES as the second parameter.
 *
 * @param string $basePath - The base path of the directory to iterate 
over
 * @param boolean $showDots - Whether or not to include files that begin
 * with a '.' character in the iteration.
 */
public function __construct($basePath, $showDots = false) {
// PREPARE ... THE ... HUMANOID
if(!is_dir($basePath)) {
$basePath = dirname($basePath);
}
if(!$basePath) {
$basePath = '.';
}
// If the given path is relative this function will transform it
// into an equivalent path.  This call assumes that the relative path
// is relative to the file that created this iterator.
$this->_basePath = Util_File::getAbsolutePath($basePath, 2);

$this->_showDots = $showDots;

}

/**
 * Returns the current value of the iteration
 *
 * @return FileInfoInfo
 */
public function current() {
return $this->_curDirIter->current();
}

/**
 * Returns the index of the current entry.
 *
 * @return string
 */
public function key() {
$curPath = $this->_curDirIter->getPathname();
$relativeToBase = substr($curPath, strlen($this->_basePath));
return $relativeToBase;
}

/**
 * Moves the directory iterator to the next element of the iteration.
 */
public function next() {
$this->_curDirIter->next();
$good = false;
while(!$good) {
if(!$this->_curDirIter->valid()) {
if(count($this->_dirStack) == 0) {
$good = true;
} else {
$this->_curDirIter = array_pop($this->_dirStack);
}
} else if($this->_curDirIter->isDot()) {
if(!$this->_showDots) {
$this->_curDirIter->next();
} else {
$good = true;
}
} else if(!$this->_showDots &&
  substr($this->_curDirIter->getFileName(), 0, 1) == '.') {
$this->_curDirIter->next();
} else if($this->_curDirIter->isDir()) {
// Create a new iterator for the sub-dir
$newIter = new DirectoryIterator(
$this->_curDirIter->getPathname());

// Make sure the current iterator is ready to go when it
// gets popped off the stack
$this->_curDirIter->next();

// Push it... push it real good
array_push($this->_dirStack, $this->_curDirIter);

// Set the new iterator
$this->_curDirIter = $newIter;
} else {
$good = true;
}
}
}

/**
 * Resets the iterator to first file in the object's base path.
 */
public function rewind() {
$this->_curDirIter = new DirectoryIterator($this->_basePath);
$this->_dirStack = array();
if(!$this->_showDots && $this->_curDirIter->isDot()) {
$this->next();
}
}

/**
 * Returns a boolean indicating wether or not there are anymore elements 
left
 * in the iteration.
 */
public function valid() {
return $this->_curDirIter->valid();
}
}

Usage:

$dirIter = new Util_RecursiveFileIterator('/path/to/directory');
foreach($dirIter AS $fileName => $fileInfo) {
  // $fileName is the basename of the file and $fileInfo is a SplFileInfo
  // for the file
}

Hope this helps!


On February 23, 2009 11:31:04 Ryan Panning wrote:
> I have discovered that when I foreach over a RecursiveDirectoryIterator
> (see example below) the $item actually turns into a SplFileInfo object.
> I would expect it to be a RecursiveDirectoryIterator. How do I do a
> hasChildren() on SplFileInfo?
>
> However, if I change it to a non-recursive, DirectoryIterator, $item is
> what I would expect, DirectoryIterator. I've tested this with 5.2.8 and
> 5.3b1. I'm guessing this is an issue with my setup as I'm sure I've
> gotten this to work before...
>
>
> $dir = new RecursiveDirectoryIterator('/path/to/dir');
> foreach ($dir as $item) {
>  print get_class($item) . "\r\n";
> }
-- 
Philip Graham
Lightbox Technologies
Suite 312 240 Catherine St.
Ottawa, ON, K2P 2G8
613-686-1661 ext. 102

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Two troublesome fields (Resolved)

2009-02-23 Thread Terion Miller
Wow do I feel blind..it was that I missed the
ISSET part at the topdidn't have it for those two fieldsDOH!!
Thanks all

Terion

Happy Freecycling
Free the List !!
www.freecycle.org
Over Moderation of Freecycle List Prevents Post Timeliness.

Twitter?
http://twitter.com/terionmiller

Facebook:
http://www.facebook.com/people/Terion-Miller/1542024891";
title="Terion Miller's Facebook profile" target=_TOP>http://badge.facebook.com/badge/1542024891.237.919247960.png"; border=0
alt="Terion Miller's Facebook profile">
P. J. O'Rourke  - "Everybody knows how to raise children, except the people
who have them."

On Fri, Feb 20, 2009 at 8:51 AM, Sean DeNigris wrote:

> *From: *Terion Miller 
> *Date: *February 19, 2009 5:34:50 PM EST
> *To: *Bastien Koert 
> *Cc: *PHP General 
> *Subject: **Re: [PHP] Two troublesome fields*
>
> I just tried this and now it's not inserting at all where before everything
> EXCEPT two fields go in...
>
> $sql = "INSERT INTO workorders ( CreatedDate, Location, WorkOrderName,
> AdminID, FormName, Status, Notes) VALUES (";
>
>$sql .= "Now(), ";
>$sql .= "'". mysql_real_escape_string($Location) ."', ";
>$sql .= "'". mysql_real_escape_string($WorkOrderName) ."', ";
>$sql .= "'". mysql_real_escape_string($AdminID) ."', ";
>$sql .= "'". mysql_real_escape_string("WorkOrder") ."', ";
>$sql .= "'". mysql_real_escape_string("New Order") ."', ";
>$sql .= "'". mysql_real_escape_string($Notes) ."', ";
>
>$WorkOrderID = mysql_insert_id();
>mysql_query($sql);
>
>
> There's no closing parethesis to VALUES, try...
> $sql .= "'". mysql_real_escape_string($Notes) ."')";
>
> Sean DeNigris
> s...@clipperadams.com
>


Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Nathan Nobbe
On Mon, Feb 23, 2009 at 9:31 AM, Ryan Panning  wrote:

> I have discovered that when I foreach over a RecursiveDirectoryIterator
> (see example below) the $item actually turns into a SplFileInfo object. I
> would expect it to be a RecursiveDirectoryIterator. How do I do a
> hasChildren() on SplFileInfo?
>
> However, if I change it to a non-recursive, DirectoryIterator, $item is
> what I would expect, DirectoryIterator. I've tested this with 5.2.8 and
> 5.3b1. I'm guessing this is an issue with my setup as I'm sure I've gotten
> this to work before...
>
>
> $dir = new RecursiveDirectoryIterator('/path/to/dir');
> foreach ($dir as $item) {
>print get_class($item) . "\r\n";
> }


if youre trying to do recursive iteration whereby you 'flatten' the tree
structure, drop the RecursiveDirectoryIterator into a
RecursiveIteratorIterator (its for iterating over RecursiveIterators), then
you dont have to bother w/ calling hasChildren() at all.  you probly also
want to look at the constructor args, since by default, it only returns leaf
nodes.

$dir = new RecursiveDirectoryIterator('/path/to/dir');

$itt = new RecursiveIteratorIterator($dir,
RecursiveIteratorIterator::CHILD_FIRST);

> foreach ($itt as $item) {
>print get_class($item) . "\r\n";
> }


-nathan


Re: [PHP] multiple choice dropdown box puzzle

2009-02-23 Thread Curtis Maurand


You're looking for something like:

This gets called 10 times from another function, but this is sort of 
what you're looking for. This gives me a combo-box.


function qselect($mysql_link, $i)
  {
 $driverquery = "select car_no, drv_name from cars order by car_no 
+ 0";

 $driverresult = mysql_query($driverquery, $mysql_link);
 print("\n");
 while ($driverrows = mysql_fetch_array($driverresult))
  {
print("  '$driverrows[0]'>$driverrows[1]\n");

  }
 print("   \n");
  }

HTH
Curtis

Afan Pasalic wrote:



PJ wrote:

I think this is a tough one... and way above my head:
PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
Having a bit of a rough time figuring out how to formulate php-mysql 
to insert data into fields using a multiple dropdown box in a form.


to post I am using the following:
snip...
$categoriesIN= $_POST["categoriesIN"];

...snip...


Choose Categories...
1
2
3
4
5

...snip...

$sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
INSERT INTO temp (example) $categoriesIN[$ii]" ;   
$result4 = mysql_query($sql4, $db);   
...snip


this does not work! The other posts work like a charm... but this...

I cannot figure out what I should be entering where... I have tried 
several different configurations, but nothing seems to work...


I found this as a model for entering the selections but can't figure 
out how to modify it for my needs:



 Choose your location(s) 
3100
3105
 3503
 3504


What I would like to do is something like the following:

Choose Categories...
History
Temples
Pharaohs and Queens
Cleopatra
Mummies

and going further, I would like to be able to use a table that 
actually holds these values to feed them to the code above. I am sure 
this is possible but it must take some huge knowledge and experience 
to do it.


BUT ...
as I look at things, I am wondering if the FOR statement in the above 
should be used to do several INSERTs, that is, one $sql(number) per 
selected category... now, would that require many $sqls or many 
INSERTs within the $sql ?



  


first, I think, $categoriesIN is string, but in the form you made it  
as an array $categoriesIN[]. I think you have to "modify it a little 
bit, something like {$categoriesIN}.'[]'


second, I think the php part "FOR ( $ii = 0 ; $ii < 
count($categoriesIN) ; $ii++ )" can't be part of the mysql statement, 
it should be "outside" the statement


FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
{
$sql4 = "INSERT INTO temp (example) $categoriesIN[$ii]" 
;   
$result4 = mysql_query($sql4, $db);   
}



afan







--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] File Write Operation Slows to a Crawl....

2009-02-23 Thread fschnittke
Hi:

Newbie here. This is my first attempt at PHP scripting. I'm trying to find
an alternative to Lotus Domino's domlog.nsf for logging web transactions.
Domino does create an Apache compatible text file of the web transactions,
and this is what I’m trying to parse. I started off using a code snibbet I
found on the web. I modified it a little bit to suit my needs. It was
working fine with the small 600k test log file I was using, but since I’ve
moved to the larger 18Mb production log file here’s what happens:

I’ve modified the code and added an echo statement to echo each loop that
gets processed. Initially it starts off very fast but then performance
becomes very slow, to a point where I can count each loop as it’s being
processed. It’s taking a little over 3 hours to parse the entire file. I
figured it was a disk cache thing, so I created a ram drive. This has
improved the performance, but is still taking an hour to parse.

Here is the PHP script I’m using:





This is running on a Toshiba Tecra A4 Laptop with FreeBSD 7.0 Release.
Plenty of RAM and HDD space. The PHP Version is:

PHP 5.2.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 09:28:47)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

What should I do to get this script to run faster?

Any help is appreciated….

Regards,



Fred Schnittke



Powered by Execulink Webmail
http://www.execulink.com/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: RecursiveDirectoryIterator and foreach

2009-02-23 Thread Ryan Panning

Ryan Panning wrote:
I have discovered that when I foreach over a RecursiveDirectoryIterator 
(see example below) the $item actually turns into a SplFileInfo object. 
I would expect it to be a RecursiveDirectoryIterator. How do I do a 
hasChildren() on SplFileInfo?


However, if I change it to a non-recursive, DirectoryIterator, $item is 
what I would expect, DirectoryIterator. I've tested this with 5.2.8 and 
5.3b1. I'm guessing this is an issue with my setup as I'm sure I've 
gotten this to work before...



$dir = new RecursiveDirectoryIterator('/path/to/dir');
foreach ($dir as $item) {
print get_class($item) . "\r\n";
}


Alright, I've found a related PHP bug report. 
http://bugs.php.net/bug.php?id=44018


It seems that the default behavior is to return a SplFileInfo object. 
However, if 0 is passed as a flag then a RecursiveDirectoryIterator 
should be returned. However, I cannot seem to get that to work with 
5.2.8. Testing previous versions, this option no longer works as of 
5.2.6, but did in 5.2.5.


This seems like a bug to me, however that bug was marked as "Wont Fix". 
The default behavior should be RecursiveDirectoryIterator as there is a 
flag for CURRENT_AS_FILEINFO. Any thoughts on that?


@ Marcus, what was the reasoning not to fix this? And why did it break 
in 5.2.6?


In relation, I've found a workaround, use while(). That way I'm always 
working off of the $dir. I'd rather use foreach though..



$dir = new RecursiveDirectoryIterator('/path/to/dir');
while ($dir->valid()) {
print get_class($dir) . "\r\n";
$dir->next();
}

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Ryan Panning

Nathan Nobbe wrote:

if youre trying to do recursive iteration whereby you 'flatten' the tree
structure, drop the RecursiveDirectoryIterator into a
RecursiveIteratorIterator (its for iterating over RecursiveIterators), then
you dont have to bother w/ calling hasChildren() at all.  you probly also
want to look at the constructor args, since by default, it only returns leaf
nodes.

$dir = new RecursiveDirectoryIterator('/path/to/dir');

$itt = new RecursiveIteratorIterator($dir,
RecursiveIteratorIterator::CHILD_FIRST);


foreach ($itt as $item) {
   print get_class($item) . "\r\n";
}



-nathan



Hi, thanks for the idea. In my case I do not want to flatten the tree. 
When there is a sub-directory I make a repeat call to the 
function/method, there-by calling it for each directory. I'd give you 
more details but I don't think it'd help with this specific issue.


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Ryan Panning

Philip Graham wrote:

Here's a RecursiveDirectoryIterator class I've written and find quite useful:

mailto:phi...@lightbox.org";>Philip Graham
 */
class Util_RecursiveFileIterator implements Iterator {
CONST SHOW_DOT_FILES = true;

private $_basePath;
private $_curDirIter;
private $_dirStack;
private $_showDots;

/**
 * Constructor.  By default the iteration will skip any files that begin
 * with a '.' character but this can be changed by passing the class
 * constant SHOW_DOT_FILES as the second parameter.
 *
 * @param string $basePath - The base path of the directory to iterate 
over

 * @param boolean $showDots - Whether or not to include files that begin
 * with a '.' character in the iteration.
 */
public function __construct($basePath, $showDots = false) {
// PREPARE ... THE ... HUMANOID
if(!is_dir($basePath)) {
$basePath = dirname($basePath);
}
if(!$basePath) {
$basePath = '.';
}
// If the given path is relative this function will transform it
// into an equivalent path.  This call assumes that the relative path
// is relative to the file that created this iterator.
$this->_basePath = Util_File::getAbsolutePath($basePath, 2);

$this->_showDots = $showDots;

}

/**
 * Returns the current value of the iteration
 *
 * @return FileInfoInfo
 */
public function current() {
return $this->_curDirIter->current();
}

/**
 * Returns the index of the current entry.
 *
 * @return string
 */
public function key() {
$curPath = $this->_curDirIter->getPathname();
$relativeToBase = substr($curPath, strlen($this->_basePath));
return $relativeToBase;
}

/**
 * Moves the directory iterator to the next element of the iteration.
 */
public function next() {
$this->_curDirIter->next();
$good = false;
while(!$good) {
if(!$this->_curDirIter->valid()) {
if(count($this->_dirStack) == 0) {
$good = true;
} else {
$this->_curDirIter = array_pop($this->_dirStack);
}
} else if($this->_curDirIter->isDot()) {
if(!$this->_showDots) {
$this->_curDirIter->next();
} else {
$good = true;
}
} else if(!$this->_showDots &&
  substr($this->_curDirIter->getFileName(), 0, 1) == '.') {
$this->_curDirIter->next();
} else if($this->_curDirIter->isDir()) {
// Create a new iterator for the sub-dir
$newIter = new DirectoryIterator(
$this->_curDirIter->getPathname());

// Make sure the current iterator is ready to go when it
// gets popped off the stack
$this->_curDirIter->next();

// Push it... push it real good
array_push($this->_dirStack, $this->_curDirIter);

// Set the new iterator
$this->_curDirIter = $newIter;
} else {
$good = true;
}
}
}

/**
 * Resets the iterator to first file in the object's base path.
 */
public function rewind() {
$this->_curDirIter = new DirectoryIterator($this->_basePath);
$this->_dirStack = array();
if(!$this->_showDots && $this->_curDirIter->isDot()) {
$this->next();
}
}

/**
 * Returns a boolean indicating wether or not there are anymore elements 
left

 * in the iteration.
 */
public function valid() {
return $this->_curDirIter->valid();
}
}

Usage:

$dirIter = new Util_RecursiveFileIterator('/path/to/directory');
foreach($dirIter AS $fileName => $fileInfo) {
  // $fileName is the basename of the file and $fileInfo is a SplFileInfo
  // for the file
}

Hope this helps!


Hi, although I don't think this will work in my situation, there is an 
interesting piece of code that you have.


array_push($this->_dirStack, $this->_curDirIter);

Are you able to "inject" the iterator with more items? I would like to 
do this with the RecursiveDirectoryIterator where-by I "inject" fake 
files into the iterator. Is this what you're doing here?


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: multiple choice dropdown box puzzle

2009-02-23 Thread PJ

Here's my test page and, so far, nothing works...


 Choose categories... 
History
Temples
 Cleopatra
 Mummies











   



Brent Baisley wrote:
> It's actually a very simple solution, and you should do it all in a
> single INSERT. Putting INSERTs in a loop will kill your performance
> when you try to scale.
>
> $sql4 = 'INSERT INTO temp (example) VALUES (' . implode('),(',
> $_POST["categoriesIN"]) . ')';
> $result4 = mysql_query($sql4, $db);
>
> That example does not sanitize the data before inserting.
>
> Brent
>
> On Mon, Feb 23, 2009 at 10:25 AM, PJ  wrote:
>   
>> I think this is a tough one... and way above my head:
>> PLEASE READ ALL OF THE ABOVE TO UNDERSTAND WHAT I AM TRYING TO DO.
>> Having a bit of a rough time figuring out how to formulate php-mysql to 
>> insert data into fields using a multiple dropdown box in a form.
>>
>> to post I am using the following:
>> snip...
>> $categoriesIN   = $_POST["categoriesIN"];
>>
>> ...snip...
>>
>> 
>>Choose Categories...
>>1
>>2
>>3
>>4
>>5
>>
>>
>> ...snip...
>>
>> $sql4 = "FOR ( $ii = 0 ; $ii < count($categoriesIN) ; $ii++ )
>>INSERT INTO temp (example) $categoriesIN[$ii]" ;
>>$result4 = mysql_query($sql4, $db);
>> ...snip
>>
>> this does not work! The other posts work like a charm... but this...
>>
>> I cannot figure out what I should be entering where... I have tried several 
>> different configurations, but nothing seems to work...
>>
>> I found this as a model for entering the selections but can't figure out how 
>> to modify it for my needs:
>>
>> 
>>  Choose your location(s) 
>> 3100
>> 3105
>>  3503
>>  3504
>> 
>>
>> What I would like to do is something like the following:
>> 
>>Choose Categories...
>>History
>>Temples
>>Pharaohs and Queens
>>Cleopatra
>>Mummies
>>
>> and going further, I would like to be able to use a table that actually 
>> holds these values to feed them to the code above. I am sure this is 
>> possible but it must take some huge knowledge and experience to do it.
>>
>> BUT ...
>> as I look at things, I am wondering if the FOR statement in the above should 
>> be used to do several INSERTs, that is, one $sql(number) per selected 
>> category... now, would that require many $sqls or many INSERTs within the 
>> $sql ?
>>
>>
>> --
>>
>> Phil Jourdan --- p...@ptahhotep.com
>>   http://www.ptahhotep.com
>>   http://www.chiccantine.com
>>
>>
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:http://lists.mysql.com/mysql?unsub=brentt...@gmail.com
>>
>>
>> 
>
>   


-- 

Phil Jourdan --- p...@ptahhotep.com
   http://www.ptahhotep.com
   http://www.chiccantine.com


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Philip Graham
On February 23, 2009 12:32:26 Ryan Panning wrote:
> Hi, although I don't think this will work in my situation, there is an
> interesting piece of code that you have.
>
> array_push($this->_dirStack, $this->_curDirIter);
>
> Are you able to "inject" the iterator with more items? I would like to
> do this with the RecursiveDirectoryIterator where-by I "inject" fake
> files into the iterator. Is this what you're doing here?

Yes, in essence that is what this is doing but I am not manipulating the 
DirectoryIterator objects.  I am instead using my own structure and logic to 
do this.

Basically I'm using normal (i.e flat) DirectoryIterator objects but when I 
encounter a sub directory, I instantiate another DirectoryIterator for the 
sub-directory to continue the iteration.  In order to remember where I was 
once I've finished iterating over the sub-directory the current iterator is 
pushed onto a stack.  Then once the iteration of the sub-directory is finished 
the iterator for the parent directory is popped off the stack and the 
iteration over that directory continues from where it was interrupted.

Does this explanation satisfy your question?


-- 
Philip Graham
Lightbox Technologies
Suite 312 240 Catherine St.
Ottawa, ON, K2P 2G8
613-686-1661 ext. 102

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] PDO buffered query problem

2009-02-23 Thread Stewart Duncan

Hi there,

I'm having some serious problems with the PHP Data Object functions. I'm 
trying to loop through a sizeable result set (~60k rows, ~1gig) using a 
buffered query to avoid fetching the whole set.


No matter what I do, the script just hangs on the PDO::query() - it 
seems the query is running unbuffered (why else would the change in 
result set size 'fix' the issue?). Here is my code to reproduce the problem:


 PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
)
);

$rQuery = $Database->query('SELECT id FROM mytable');

// This is never reached because the result set is too large
echo 'Made it through.';

foreach($rQuery as $aRow) {
print_r($aRow);
}
?>

If I limit the query with some reasonable number, it works fine:

$rQuery = $Database->query('SELECT id FROM mytable LIMIT 10');

I have tried playing with PDO::MYSQL_ATTR_MAX_BUFFER_SIZE and using the 
PDO::prepare() and PDO::execute() as well (though there are no 
parameters in the above query), both to no avail.


Any help would be appreciated,

Stewart

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] help installing phpDocumentor

2009-02-23 Thread jim white
I have tried to install phpDocumentor, but am having problems getting it 
to run. Finding install directions has so far eluded me. Are there any 
installation instructions for this?


Jim White



--
James (Jim) B. White
tel: (919)-380-9615
homepage: http://jimserver.net/ 



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP] Re: multiple choice dropdown box puzzle

2009-02-23 Thread Bob McConnell
From: PJ
> 
> Here's my test page and, so far, nothing works...

Please expound on "nothing works...". What do you see in the browser?
What do you see in the server logs?

>  

You at least need a space between http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] help installing phpDocumentor

2009-02-23 Thread Jim Lucas
jim white wrote:
> I have tried to install phpDocumentor, but am having problems getting it
> to run. Finding install directions has so far eluded me. Are there any
> installation instructions for this?
> 
> Jim White
> 
> 
> 

searching google for install phpDocumentor

first result is this

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html

Is this what you are looking for?

-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
   and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
by William Shakespeare

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] RecursiveDirectoryIterator and foreach

2009-02-23 Thread Nathan Nobbe
On Mon, Feb 23, 2009 at 10:27 AM, Ryan Panning  wrote:

> Nathan Nobbe wrote:
>
>> if youre trying to do recursive iteration whereby you 'flatten' the tree
>> structure, drop the RecursiveDirectoryIterator into a
>> RecursiveIteratorIterator (its for iterating over RecursiveIterators),
>> then
>> you dont have to bother w/ calling hasChildren() at all.  you probly also
>> want to look at the constructor args, since by default, it only returns
>> leaf
>> nodes.
>>
>> $dir = new RecursiveDirectoryIterator('/path/to/dir');
>>
>> $itt = new RecursiveIteratorIterator($dir,
>> RecursiveIteratorIterator::CHILD_FIRST);
>>
>>  foreach ($itt as $item) {
>>>   print get_class($item) . "\r\n";
>>> }
>>>
>>
>>
>> -nathan
>
>
im not sure i fully understand the problem, but from the sound of it, as a
work-around, why not something like this,

$dirIt = new RecursiveDirectoryIterator($path);
foreach($dirIt as $item) {
  if($item->isDir()) {
$subdir = new RecursiveDirectoryIterator($item);
// now you have the RecursiveDirectoryIterator you wanted ??
  }
}

-nathan


Re: [PHP] help installing phpDocumentor

2009-02-23 Thread jim white

Jim Lucas wrote:

jim white wrote:
  

I have tried to install phpDocumentor, but am having problems getting it
to run. Finding install directions has so far eluded me. Are there any
installation instructions for this?

Jim White






searching google for install phpDocumentor

first result is this

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html

Is this what you are looking for?

  
No, I already found that. I have installed it according to the 
instructions. PEAR didn't work at all, and install using tar file only 
partly works.




--
James (Jim) B. White
tel: (919)-380-9615
homepage: http://jimserver.net/ 



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] help installing phpDocumentor

2009-02-23 Thread Jim Lucas
jim white wrote:
> Jim Lucas wrote:
>> jim white wrote:
>>  
>>> I have tried to install phpDocumentor, but am having problems getting it
>>> to run. Finding install directions has so far eluded me. Are there any
>>> installation instructions for this?
>>>
>>> Jim White
>>>
>>>
>>>
>>> 
>>
>> searching google for install phpDocumentor
>>
>> first result is this
>>
>> http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html
>>
>>
>> Is this what you are looking for?
>>
>>   
> No, I already found that. I have installed it according to the
> instructions. PEAR didn't work at all, and install using tar file only
> partly works.
> 
> 
> 

When you say PEAR didn't work.  What exactly do you mean.  If you received an 
error, what was it?

What exactly "only partly worked" with the tar installer?

-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
   and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
by William Shakespeare

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] help installing phpDocumentor

2009-02-23 Thread jim white

Jim Lucas wrote:

jim white wrote:
  

Jim Lucas wrote:


jim white wrote:
 
  

I have tried to install phpDocumentor, but am having problems getting it
to run. Finding install directions has so far eluded me. Are there any
installation instructions for this?

Jim White






searching google for install phpDocumentor

first result is this

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html


Is this what you are looking for?

  
  

No, I already found that. I have installed it according to the
instructions. PEAR didn't work at all, and install using tar file only
partly works.






When you say PEAR didn't work.  What exactly do you mean.  If you received an 
error, what was it?

What exactly "only partly worked" with the tar installer?

  
It seems part of my problem, at least with the tar install, was not 
setting my directory permissions so it could write the files. PEAR I 
will skip since I almost have it working using the tar file. I have 
tried creating docs with HTML:Smarty:default which works, but for 
HTML:frames:default at the file level I get *Parse error*: syntax error, 
unexpected T_STRING.


Also, if I want to download the other formats, where do you install them?

Jim


--
James (Jim) B. White
tel: (919)-380-9615
homepage: http://jimserver.net/ 



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Re: multiple choice dropdown box puzzle

2009-02-23 Thread Shawn McKenzie
Bob McConnell wrote:
> From: PJ
>> Here's my test page and, so far, nothing works...
> 
> Please expound on "nothing works...". What do you see in the browser?
> What do you see in the server logs?
> 
>>  
> I strongly recommend changing all of these to  That will reduce the ambiguity and possibly prevent errors like the next
> one.
> 
>>  size="5">
> 
> You at least need a space between  trying to parse " undefined.
> 
> Bob McConnell

And I'm sure you don't want: name=".'[]'"

Maybe: name="categoriesIN[]"

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: File Write Operation Slows to a Crawl....

2009-02-23 Thread Shawn McKenzie
fschnit...@execulink.com wrote:
> Hi:
> 
> Newbie here. This is my first attempt at PHP scripting. I'm trying to find
> an alternative to Lotus Domino's domlog.nsf for logging web transactions.
> Domino does create an Apache compatible text file of the web transactions,
> and this is what I’m trying to parse. I started off using a code snibbet I
> found on the web. I modified it a little bit to suit my needs. It was
> working fine with the small 600k test log file I was using, but since I’ve
> moved to the larger 18Mb production log file here’s what happens:
> 
> I’ve modified the code and added an echo statement to echo each loop that
> gets processed. Initially it starts off very fast but then performance
> becomes very slow, to a point where I can count each loop as it’s being
> processed. It’s taking a little over 3 hours to parse the entire file. I
> figured it was a disk cache thing, so I created a ram drive. This has
> improved the performance, but is still taking an hour to parse.
> 
> Here is the PHP script I’m using:
> 
> 
>  
Why read in an array and then implode it to a string, then split it into
an array?  Just use file_get_contents() and split it or use file() and
then do your preg_replace("/(\r|\t)/", on the array).
> $ac_arr = file('access_log');
> $astring = join("", $ac_arr);
> $astring = preg_replace("/(\r|\t)/", "", $astring);
> $records = preg_split("/(\n)/", $astring, -1, PREG_SPLIT_NO_EMPTY);
> 
> $sizerecs = sizeof($records);
> 
> // now split into records
> $i = 1;
> $each_rec = 0;
> 
Why not foreach($records as $all) ?
> while($i<$sizerecs) {
> $all = $records[$i];
> 
All of these $all = str_replace() and othe str_replace() are probably
killing you.  Rethink a way where you extract the data instead of
finding it and then replacing it.
> // IP Address ($IP):
> $IP = substr($all, 0, strpos($all, " "));
> $all = str_replace($IP, "", $all);
> 
> //Remote User ($RU):
> $string = substr($all, 0, strpos($all, " [")); // www.vpcl.on.ca T123
> $sstring = substr($string, strpos($string, " ")+1);
> $AUstring = substr($sstring, strpos($sstring, " "));
> $RU = preg_replace("/\"/", "", $AUstring);
> $RU = trim($RU);
> $all = str_replace($string, "", $all);
> 
> //Request Time Stamp ($RTS):
> preg_match("/\[(.+)\]/", $all, $match);
> $RTS = $match[1];
> $all = str_replace(" [$RTS] \"", "", $all);
> 
> //Http Request Line ($HRL):
> $string = substr($all, 0, strpos($all, "\"")+2);
> $HRL = str_replace("\"", "", $string);
> $all = str_replace($string, "", $all);
> 
> //Http Response Status Code (HRSC):
> $HRSC = trim(substr($all, 0, strpos($all, " ")+1));
> $all = str_replace($HRSC, "", $all);
> 
> //Request Content Length (RCL):
> $string = substr($all, 0, strpos($all, "\"")+1);
> $RCL = trim(str_replace("\"", "", $string));
> $all = str_replace($string, "", $all);
> 
> //Referring URL (RefU):
> $string = substr($all, 0, strpos($all, "\"")+3);
> $RefU = substr($all, 0, strpos($all, "\""));
> $all = str_replace($string, "", $all);
> 
> //User Agent (UA):
> $string = substr($all, 0, strpos($all, "\"")+2);
> $UA = substr($all, 0, strpos($all, "\""));
> $all = str_replace($string, "", $all);
> 
> //Time to Process Request:
> 
> #$new_format[$each_rec] = "$UA\n";
> $new_format[$each_rec] =
> "$IP\t$RU\t$RTS\t$HRL\t$HRSC\t$RCL\t$RefU\t$UA\t$all\n";
> 
Each time through the above loop you add a $new_format[$each_rec] and
then here you are looping through each one of those.  I think if you
just move this to the end it will make a drastic improvement.
> $fhandle = fopen("/ramdrive/import_file.txt", "w");
>   foreach($new_format as $data) {
> fputs($fhandle, "$data");
> }
>   fclose($fhandle);
> 
> // advance to next record
> echo "$i\n";
> $i = $i + 1;
> 
> $each_rec++;
> }
$fhandle = fopen("/ramdrive/import_file.txt", "w");
   foreach($new_format as $data) {
 fputs($fhandle, "$data");
   }
fclose($fhandle);

> ?>
> 
> 
> This is running on a Toshiba Tecra A4 Laptop with FreeBSD 7.0 Release.
> Plenty of RAM and HDD space. The PHP Version is:
> 
> PHP 5.2.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 09:28:47)
> Copyright (c) 1997-2007 The PHP Group
> Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
> 
> What should I do to get this script to run faster?
> 
> Any help is appreciated….
> 
> Regards,
> 
> 
> 
> Fred Schnittke
> 
> 
> 
> Powered by Execulink Webmail
> http://www.execulink.com/
> 


-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] help installing phpDocumentor

2009-02-23 Thread Jim Lucas
Back on the list...

jim white wrote:
> Jim Lucas wrote:
>> jim white wrote:
>>  
>>> Jim Lucas wrote:
>>>
 jim white wrote:
  
  
> I have tried to install phpDocumentor, but am having problems
> getting it
> to run. Finding install directions has so far eluded me. Are there any
> installation instructions for this?
>
> Jim White
>
>
>
> 
 searching google for install phpDocumentor

 first result is this

 http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html



 Is this what you are looking for?

 
>>> No, I already found that. I have installed it according to the
>>> instructions. PEAR didn't work at all, and install using tar file only
>>> partly works.
>>>
>>>
>>>
>>> 
>>
>> When you say PEAR didn't work.  What exactly do you mean.  If you
>> received an error, what was it?
>>
>> What exactly "only partly worked" with the tar installer?
>>
>>   
> Here is my problem.
> 
> 
> 
> Need to look into turning this off or setting my web server to parse it
> correctly.
> 
> Jim
> 
> 
> 

Best bet would be to tell your system to not use short tags.

That is where your parse error is coming from.

Or, assuming that the above line is in an included file, change it to

';
?>

or something similar

But, if it were me, I would disabled short tags.

I may be wrong, but I heard short tags were going the way of the Dodo bird as 
of PHP6.

-- 
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
   and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
by William Shakespeare

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] File Write Operation Slows to a Crawl....

2009-02-23 Thread Paul M Foster
On Mon, Feb 23, 2009 at 11:59:20AM -0500, fschnit...@execulink.com wrote:

> Hi:
> 
> Newbie here. This is my first attempt at PHP scripting. I'm trying to find
> an alternative to Lotus Domino's domlog.nsf for logging web transactions.
> Domino does create an Apache compatible text file of the web transactions,
> and this is what I’m trying to parse. I started off using a code snibbet I
> found on the web. I modified it a little bit to suit my needs. It was
> working fine with the small 600k test log file I was using, but since I’ve
> moved to the larger 18Mb production log file here’s what happens:
> 
> I’ve modified the code and added an echo statement to echo each loop that
> gets processed. Initially it starts off very fast but then performance
> becomes very slow, to a point where I can count each loop as it’s being
> processed. It’s taking a little over 3 hours to parse the entire file. I
> figured it was a disk cache thing, so I created a ram drive. This has
> improved the performance, but is still taking an hour to parse.
> 
> Here is the PHP script I’m using:
> 
> 
>  
> $ac_arr = file('access_log');
> $astring = join("", $ac_arr);

First, don't use file() (which reads a file into an array of strings),
and then join() (which makes them into a single string). Use
file_get_contents(), which does what you want all in one step. The
result is a single string.

> $astring = preg_replace("/(\r|\t)/", "", $astring);

Use two calls to str_replace() for the above. It's likely faster because
it doesn't involve regular expressions iterated over an 18M file.

> $records = preg_split("/(\n)/", $astring, -1, PREG_SPLIT_NO_EMPTY);

It looks like you're trying to split the string at newlines. So you end
up with an array of strings again. If that's the case, just stick with
the file() call earlier, and then remove the \r's and \t's.

> 
> $sizerecs = sizeof($records);
> 
> // now split into records
> $i = 1;
> $each_rec = 0;
> 
> while($i<$sizerecs) {
> $all = $records[$i];
> 
> // IP Address ($IP):
> $IP = substr($all, 0, strpos($all, " "));
> $all = str_replace($IP, "", $all);
> 
> //Remote User ($RU):
> $string = substr($all, 0, strpos($all, " [")); // www.vpcl.on.ca T123
> $sstring = substr($string, strpos($string, " ")+1);
> $AUstring = substr($sstring, strpos($sstring, " "));
> $RU = preg_replace("/\"/", "", $AUstring);
> $RU = trim($RU);
> $all = str_replace($string, "", $all);
> 
> //Request Time Stamp ($RTS):
> preg_match("/\[(.+)\]/", $all, $match);
> $RTS = $match[1];
> $all = str_replace(" [$RTS] \"", "", $all);
> 
> //Http Request Line ($HRL):
> $string = substr($all, 0, strpos($all, "\"")+2);
> $HRL = str_replace("\"", "", $string);
> $all = str_replace($string, "", $all);
> 
> //Http Response Status Code (HRSC):
> $HRSC = trim(substr($all, 0, strpos($all, " ")+1));
> $all = str_replace($HRSC, "", $all);
> 
> //Request Content Length (RCL):
> $string = substr($all, 0, strpos($all, "\"")+1);
> $RCL = trim(str_replace("\"", "", $string));
> $all = str_replace($string, "", $all);
> 
> //Referring URL (RefU):
> $string = substr($all, 0, strpos($all, "\"")+3);
> $RefU = substr($all, 0, strpos($all, "\""));
> $all = str_replace($string, "", $all);
> 
> //User Agent (UA):
> $string = substr($all, 0, strpos($all, "\"")+2);
> $UA = substr($all, 0, strpos($all, "\""));
> $all = str_replace($string, "", $all);
> 
> //Time to Process Request:
> 
> #$new_format[$each_rec] = "$UA\n";
> $new_format[$each_rec] =
> "$IP\t$RU\t$RTS\t$HRL\t$HRSC\t$RCL\t$RefU\t$UA\t$all\n";

I would do various cleanups in the above code, but the following code
disturbs me. If I'm not misreading, you're reopening this output file
with every iteration through your file. That is, for each line you
process, you're opening and writing one line to the file, then closing
the file again. If you're relatively certain no one else will be writing
to this file, simply open it once before your while() loop, and write a
single line to it at this point. Also, you're using a foreach loop here,
but if I'm reading this properly, you only have one record you're
writing, so there's no need for a loop. In fact, you're also storing the
results in a progressively larger and larger array ($new_format). Since
you're not using this array for any other purpose, there's no point in
using an array. Just use a string to store it, and then write it back
out. So instead of what you're doing below, and considering that
$new_format will be a string instead of an array, just do:

fputs($fhandle, $new_format);

Close the file after the end of your loop.

I must be reading this wrong, because it looks to me like you're
actually writing n+1 lines to the file for each iteration (n). I don't
think that's what you had in mind. That's why you don't need a loop
here. If what I'm saying isn't clear, consider this: The way this is
written, $new_format is an array that grows by one value (string) each
iteration. But with each iteration, you're writing out the *whole* array
to the f

[PHP] Having Trouble With Session Variable in Query Statement

2009-02-23 Thread revDAVE
Hi folks,

I'm trying to make an update query with a session variable...

It creates this error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
T_STRING or T_VARIABLE or T_NUM_STRING in ...

Q: the session var shows ok on the page :
ID 
- so how do I fix the error?

==

http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Having Trouble With Session Variable in Query Statement

2009-02-23 Thread Paul M Foster
On Mon, Feb 23, 2009 at 12:34:58PM -0800, revDAVE wrote:

> Hi folks,
> 
> I'm trying to make an update query with a session variable...
> 
> It creates this error:
> 
> Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
> T_STRING or T_VARIABLE or T_NUM_STRING in ...
> 
> Q: the session var shows ok on the page :
> ID 
> - so how do I fix the error?
> 
> ==
> 
>  if(!session_id()) session_start();
> $amt = 18;
> $id1 = 8;
> $_SESSION['thisid']=8;
> $id2 = $_SESSION['thisid'] ;
> 
> 
>   //these 3 work
> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=8";
> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=$id1";
> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=$id2"; // uses
> $_SESSION['thisid']
> 
> //but this does not..
> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE
> id=$_SESSION['thisid']";

Don't single quote values inside array brackets when the whole
expression is in double quotes. You've got:

"... $_SESSION['thisid']";

Do this instead:

"... $_SESSION[thisid]";

Paul
-- 
Paul M. Foster

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Having Trouble With Session Variable in Query Statement

2009-02-23 Thread Philip Graham


On February 23, 2009 15:34:58 revDAVE wrote:
> Hi folks,
>
> //but this does not..
> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE
> id=$_SESSION['thisid']";
>
> Q: How can I fix it?

try :
 $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE
  id={$_SESSION['thisid']}";

or even better:
 $updateSQL ="UPDATE `mytable` SET thetotal=".mysql_real_escape_string($amt).
  " WHERE id=".mysql_real_escape_string($_SESSION['thisid']);

substituting mysql_real_escape_string with the escape function for your 
database.
-- 
Philip Graham
Lightbox Technologies
Suite 312 240 Catherine St.
Ottawa, ON, K2P 2G8
613-686-1661 ext. 102

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Having Trouble With Session Variable in Query Statement

2009-02-23 Thread revDAVE
On 2/23/2009 12:44 PM, "Paul M Foster"  wrote:

> Don't single quote values inside array brackets when the whole
> expression is in double quotes. You've got:
> 
> "... $_SESSION['thisid']";
> 
> Do this instead:
> 
> "... $_SESSION[thisid]";


AHA - thanks much - that worked!



--
Thanks - RevDave
Cool @ hosting4days . com
[db-lists 09]




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Having Trouble With Session Variable in Query Statement

2009-02-23 Thread Micah Gersten
Paul M Foster wrote:
> On Mon, Feb 23, 2009 at 12:34:58PM -0800, revDAVE wrote:
>
>   
>> Hi folks,
>>
>> I'm trying to make an update query with a session variable...
>>
>> It creates this error:
>>
>> Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
>> T_STRING or T_VARIABLE or T_NUM_STRING in ...
>>
>> Q: the session var shows ok on the page :
>> ID 
>> - so how do I fix the error?
>>
>> ==
>>
>> > if(!session_id()) session_start();
>> $amt = 18;
>> $id1 = 8;
>> $_SESSION['thisid']=8;
>> $id2 = $_SESSION['thisid'] ;
>>
>>
>>   //these 3 work
>> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=8";
>> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=$id1";
>> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE id=$id2"; // uses
>> $_SESSION['thisid']
>>
>> //but this does not..
>> $updateSQL ="UPDATE `mytable` SET thetotal=$amt WHERE
>> id=$_SESSION['thisid']";
>> 
>
> Don't single quote values inside array brackets when the whole
> expression is in double quotes. You've got:
>
> "... $_SESSION['thisid']";
>
> Do this instead:
>
> "... $_SESSION[thisid]";
>
> Paul
>   

Better off doing this so you don't get into the habit of not using
quotes around array params:

"... {$_SESSION['thisid']}";

See this:
http://us2.php.net/manual/en/language.types.string.php#language.types.string.parsing

Thank you,
Micah Gersten
onShore Networks
Internal Developer
http://www.onshore.com





Re: [PHP] File Write Operation Slows to a Crawl....

2009-02-23 Thread fschnittke
Thanks Paul and Shawn:

I can't answer the Why's in your posts, as this is literally my first
attempt at PHP, but I will investigate your response and refine my code
accordingly.

What I did find is that by replacing the following code:

$fhandle = fopen("/ramdrive/import_file.txt", "w");
  foreach($new_format as $data) {
fputs($fhandle, "$data");
}
  fclose($fhandle);


with this code:

$fp = fopen('data.txt', 'a');
fwrite($fp, $new_format[$each_rec]);
fclose($fp);

The parsing finished literally, within seconds. I don't have to worry
about anyone else opening this file, so I think this should work ok.

Thanks for your help


Fred Schnittke



Powered by Execulink Webmail
http://www.execulink.com/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: File Write Operation Slows to a Crawl....

2009-02-23 Thread Shawn McKenzie
Shawn McKenzie wrote:
> fschnit...@execulink.com wrote:
>> Hi:
>>
>> Newbie here. This is my first attempt at PHP scripting. I'm trying to find
>> an alternative to Lotus Domino's domlog.nsf for logging web transactions.
>> Domino does create an Apache compatible text file of the web transactions,
>> and this is what I’m trying to parse. I started off using a code snibbet I
>> found on the web. I modified it a little bit to suit my needs. It was
>> working fine with the small 600k test log file I was using, but since I’ve
>> moved to the larger 18Mb production log file here’s what happens:
>>
>> I’ve modified the code and added an echo statement to echo each loop that
>> gets processed. Initially it starts off very fast but then performance
>> becomes very slow, to a point where I can count each loop as it’s being
>> processed. It’s taking a little over 3 hours to parse the entire file. I
>> figured it was a disk cache thing, so I created a ram drive. This has
>> improved the performance, but is still taking an hour to parse.
>>
>> Here is the PHP script I’m using:
>>
>>
>> >
> Why read in an array and then implode it to a string, then split it into
> an array?  Just use file_get_contents() and split it or use file() and
> then do your preg_replace("/(\r|\t)/", on the array).
>> $ac_arr = file('access_log');
>> $astring = join("", $ac_arr);
>> $astring = preg_replace("/(\r|\t)/", "", $astring);
>> $records = preg_split("/(\n)/", $astring, -1, PREG_SPLIT_NO_EMPTY);
>>
>> $sizerecs = sizeof($records);
>>
>> // now split into records
>> $i = 1;
>> $each_rec = 0;
>>
> Why not foreach($records as $all) ?
>> while($i<$sizerecs) {
>> $all = $records[$i];
>>
> All of these $all = str_replace() and othe str_replace() are probably
> killing you.  Rethink a way where you extract the data instead of
> finding it and then replacing it.
>> // IP Address ($IP):
>> $IP = substr($all, 0, strpos($all, " "));
>> $all = str_replace($IP, "", $all);
>>
>> //Remote User ($RU):
>> $string = substr($all, 0, strpos($all, " [")); // www.vpcl.on.ca T123
>> $sstring = substr($string, strpos($string, " ")+1);
>> $AUstring = substr($sstring, strpos($sstring, " "));
>> $RU = preg_replace("/\"/", "", $AUstring);
>> $RU = trim($RU);
>> $all = str_replace($string, "", $all);
>>
>> //Request Time Stamp ($RTS):
>> preg_match("/\[(.+)\]/", $all, $match);
>> $RTS = $match[1];
>> $all = str_replace(" [$RTS] \"", "", $all);
>>
>> //Http Request Line ($HRL):
>> $string = substr($all, 0, strpos($all, "\"")+2);
>> $HRL = str_replace("\"", "", $string);
>> $all = str_replace($string, "", $all);
>>
>> //Http Response Status Code (HRSC):
>> $HRSC = trim(substr($all, 0, strpos($all, " ")+1));
>> $all = str_replace($HRSC, "", $all);
>>
>> //Request Content Length (RCL):
>> $string = substr($all, 0, strpos($all, "\"")+1);
>> $RCL = trim(str_replace("\"", "", $string));
>> $all = str_replace($string, "", $all);
>>
>> //Referring URL (RefU):
>> $string = substr($all, 0, strpos($all, "\"")+3);
>> $RefU = substr($all, 0, strpos($all, "\""));
>> $all = str_replace($string, "", $all);
>>
>> //User Agent (UA):
>> $string = substr($all, 0, strpos($all, "\"")+2);
>> $UA = substr($all, 0, strpos($all, "\""));
>> $all = str_replace($string, "", $all);
>>
>> //Time to Process Request:
>>
>> #$new_format[$each_rec] = "$UA\n";
>> $new_format[$each_rec] =
>> "$IP\t$RU\t$RTS\t$HRL\t$HRSC\t$RCL\t$RefU\t$UA\t$all\n";
>>
> Each time through the above loop you add a $new_format[$each_rec] and
> then here you are looping through each one of those.  I think if you
> just move this to the end it will make a drastic improvement.
>> $fhandle = fopen("/ramdrive/import_file.txt", "w");
>>   foreach($new_format as $data) {
>> fputs($fhandle, "$data");
>> }
>>   fclose($fhandle);
>>
>> // advance to next record
>> echo "$i\n";
>> $i = $i + 1;
>>
>> $each_rec++;
>> }
> $fhandle = fopen("/ramdrive/import_file.txt", "w");
>foreach($new_format as $data) {
>  fputs($fhandle, "$data");
>}
> fclose($fhandle);
> 
>> ?>
>>
>>
>> This is running on a Toshiba Tecra A4 Laptop with FreeBSD 7.0 Release.
>> Plenty of RAM and HDD space. The PHP Version is:
>>
>> PHP 5.2.5 with Suhosin-Patch 0.9.6.2 (cli) (built: Feb 11 2009 09:28:47)
>> Copyright (c) 1997-2007 The PHP Group
>> Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
>>
>> What should I do to get this script to run faster?
>>
>> Any help is appreciated….
>>
>> Regards,
>>
>>
>>
>> Fred Schnittke
>>
>>
>> 
>> Powered by Execulink Webmail
>> http://www.execulink.com/
>>
> 
> 
I see that Paul replied and we say the same things, so here are the two
best approaches to speed it up ignoring all the str_replaces(), etc.
that need to be gotten rid of:

// option 1 - i would assume this to be the most efficient / fastest
$ac_arr = file('access_log');
$records = preg_replace("/(\r|\t)/", "", $ac_arr);

$fhandle = fopen("/ramdrive/import_file.txt", "w");

foreach($records as $all) {
//

Re: [PHP] File Write Operation Slows to a Crawl....

2009-02-23 Thread Shawn McKenzie
fschnit...@execulink.com wrote:
> Thanks Paul and Shawn:
> 
> I can't answer the Why's in your posts, as this is literally my first
> attempt at PHP, but I will investigate your response and refine my code
> accordingly.
> 
> What I did find is that by replacing the following code:
> 
> $fhandle = fopen("/ramdrive/import_file.txt", "w");
>   foreach($new_format as $data) {
> fputs($fhandle, "$data");
> }
>   fclose($fhandle);
> 
> 
> with this code:
> 
> $fp = fopen('data.txt', 'a');
> fwrite($fp, $new_format[$each_rec]);
> fclose($fp);
> 
> The parsing finished literally, within seconds. I don't have to worry
> about anyone else opening this file, so I think this should work ok.
> 
> Thanks for your help
> 
> 
> Fred Schnittke
> 
> 
> 
> Powered by Execulink Webmail
> http://www.execulink.com/
> 
Good job!  I posted a minute ago with 2 options, but for your fix I
would recommend the following:

// move this before your while()
$fp = fopen('data.txt', 'w');  //notice the 'w' now

// move this after the } that ends your while
fclose($fp);

Should save even more time because you're not opening and closing the
file each time through the while().

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] File Write Operation Slows to a Crawl....

2009-02-23 Thread fschnittke
Hi Shawn:

Yes, good idea, I agree

Thanks


Fred

> fschnit...@execulink.com wrote:
>> Thanks Paul and Shawn:
>>
>> I can't answer the Why's in your posts, as this is literally my first
>> attempt at PHP, but I will investigate your response and refine my code
>> accordingly.
>>
>> What I did find is that by replacing the following code:
>>
>> $fhandle = fopen("/ramdrive/import_file.txt", "w");
>>   foreach($new_format as $data) {
>> fputs($fhandle, "$data");
>> }
>>   fclose($fhandle);
>>
>>
>> with this code:
>>
>> $fp = fopen('data.txt', 'a');
>> fwrite($fp, $new_format[$each_rec]);
>> fclose($fp);
>>
>> The parsing finished literally, within seconds. I don't have to worry
>> about anyone else opening this file, so I think this should work ok.
>>
>> Thanks for your help
>>
>>
>> Fred Schnittke
>>
>>
>> 
>> Powered by Execulink Webmail
>> http://www.execulink.com/
>>
> Good job!  I posted a minute ago with 2 options, but for your fix I
> would recommend the following:
>
> // move this before your while()
> $fp = fopen('data.txt', 'w');  //notice the 'w' now
>
> // move this after the } that ends your while
> fclose($fp);
>
> Should save even more time because you're not opening and closing the
> file each time through the while().
>
> --
> Thanks!
> -Shawn
> http://www.spidean.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>




Powered by Execulink Webmail
http://www.execulink.com/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] help installing phpDocumentor

2009-02-23 Thread jim white

Jim Lucas wrote:

Back on the list...

jim white wrote:
  

Jim Lucas wrote:


jim white wrote:
 
  

Jim Lucas wrote:
   


jim white wrote:
 
 
  

I have tried to install phpDocumentor, but am having problems
getting it
to run. Finding install directions has so far eluded me. Are there any
installation instructions for this?

Jim White






searching google for install phpDocumentor

first result is this

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.quickstart.pkg.html



Is this what you are looking for?


  

No, I already found that. I have installed it according to the
instructions. PEAR didn't work at all, and install using tar file only
partly works.






When you say PEAR didn't work.  What exactly do you mean.  If you
received an error, what was it?

What exactly "only partly worked" with the tar installer?

  
  

Here is my problem.



Need to look into turning this off or setting my web server to parse it
correctly.

Jim






Best bet would be to tell your system to not use short tags.

That is where your parse error is coming from.

Or, assuming that the above line is in an included file, change it to

';
?>

or something similar

But, if it were me, I would disabled short tags.

I may be wrong, but I heard short tags were going the way of the Dodo bird as 
of PHP6.

  

Thanks, all looks good now!

Jim

--
James (Jim) B. White
tel: (919)-380-9615
homepage: http://jimserver.net/ 



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PDO buffered query problem

2009-02-23 Thread Chris

Stewart Duncan wrote:

Hi there,

I'm having some serious problems with the PHP Data Object functions. I'm 
trying to loop through a sizeable result set (~60k rows, ~1gig) using a 
buffered query to avoid fetching the whole set.


No matter what I do, the script just hangs on the PDO::query() - it 
seems the query is running unbuffered (why else would the change in 
result set size 'fix' the issue?). Here is my code to reproduce the 
problem:


 PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
)
);


Don't you want it the other way around? You want it unbuffered so it 
doesn't get retrieved in mysql, send the whole result set to php then 
you can use it.


You want to start using it immediately - so make it unbuffered.

--
Postgresql & php tutorials
http://www.designmagick.com/


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Why PHP won

2009-02-23 Thread Daevid Vincent
http://startuplessonslearned.blogspot.com/2009/01/why-php-won.html



Re: [PHP] Re: Securing web services

2009-02-23 Thread Yannick Warnier
Le dimanche 22 février 2009 à 21:29 +, Nathan Rixham a écrit :
> Yannick Warnier wrote:
> > Hi there,
> > 
> > Another Web Service related question. Obviously, Google gives me enough
> > hints to find *many* documents on the topic (searching for "securing web
> > services"), but I am developing open-source soft and I'd like to secure
> > my web services to the maximum without forcing the user to use HTTPS/SSL
> > (the generation of buying of a certificate is not what our lambda users
> > can do).
> 
> Yanick,
> 
> I'm hoping to save you some time here; Web Services are very poorly 
> implemented in PHP (and that sentence is the reason I'm emailing you 
> off-list).

Nevermind :-)

> Everything you need is catered for in SOAP and by using the WS-xxx 
> extensions which are common place in the Java and .net world (infact 
> most languages) - thankfully those who are fortunate enough to know can 
> do this in PHP as well and consume all manner of web services, as well 
> as generate them.
> 
> You need WSO2 (oxygen) - specifically WSO2 WSF/PHP; it's the finest web 
> service library for all languages and has a massive community behind it.
> 
> http://wso2.org/projects/wsf/php
> docs: http://wso2.org/project/wsf/php/2.0.0/docs/api.html

The license is Apache 2, which doesn't really match my GPLv2 (or
superior) license.

Does anyone know how one deals with this kind of headache? If my
software is GPLv2 "or superior", does it means that if I include a
library that is only compatible with GPLv3 I have to restrict my soft to
GPLv3? (and not v2 anymore)

Apart from that, from a quick view through the code, I didn't really
find something better than NuSOAP "setCredentials" in the list of
available functions, but I suppose this should be an off-list topic
now...

Yannick


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] optimizing space for array of booleans

2009-02-23 Thread leledumbo

> you should not worry about optimizing boolean values unless you would store
them in database.
I DO need to store them in a database, that's why I'm asking. I won't care
if I only use PHP, since it won't keep my data in memory for a long time.

> anyways, use bitwise operators
I think I've stated that I don't want to use bitwise operations. It's OK for
small sets, but not for a set with about 200 elements. Anyway, I found
bitset library in PECL, but I found no documentation at all.
-- 
View this message in context: 
http://www.nabble.com/optimizing-space-for-array-of-booleans-tp22159131p22174206.html
Sent from the PHP - General mailing list archive at Nabble.com.


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: multiple choice dropdown box puzzle

2009-02-23 Thread PJ
Brent Baisley wrote:
> It's actually a very simple solution, and you should do it all in a
> single INSERT. Putting INSERTs in a loop will kill your performance
> when you try to scale.
>
> $sql4 = 'INSERT INTO test (example) VALUES (' . implode('),(',
> $_POST["categoriesIN"]) . ')';
> $result4 = mysql_query($sql4, $db);
Please explain this... I do not understand how the implode is being used
here.
As I understand it, the above code would aoutput or rather INSERT all
the choicees into one field as choice numbers separated by a , (like 1,
3, 4) or what?  I suppose I could use that but I'm not sure if this is
the way to  go. I understand the performance problem and would like to
keep it simple.
>
> That example does not sanitize the data before inserting.
I know, but I am just testing locally for now. Will sanitize later.
>
> Brent
Here is my test page: Questions below that.


test form







 Choose categories... 
History
Temples
 Cleopatra
 Mummies











   



==
Question 1.
What should be entered into the name=" something " to make it work?

Question 2.
How should the $sql4 = "INSERT.. be completed?

I know the code above is not working but I can't figure out what's wrong.
TIA



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] PHP - user profile page with pic

2009-02-23 Thread Virgilio Quilario
> ---
> Use FreeOpenSourceSoftwares, Stop piracy, Let the developers live. Get
> a Free CD of Ubuntu mailed to your door without any cost. Visit :
> www.ubuntu.com
> --
>
>> my level of coding is basic. out of the box is fine as long as it is a good
>> one. I do know how to connect to database pull and display records as well
>> as set up login. But I guess I have to create a session so that when a user
>> logs in only his/her information is shown correct?
>
>
> Yes, and it would be better for you to have an in depth look into the open
> source projects found. Get to analyse them. So, you'll get familiarized with
> the advanced well known methods. Learning from them you will be able to
> create something better and not reinventing the wheels.
>
> Lenin
>
>>
>>
>> -Jeff
>>
>>  The question can be equally rephrased as "How an Atom bom/Spaceship be
>>> created"?
>>>
>>> Answer depends on the level of knowledge you have on coding / developing
>>> sites. Woud you be using any framework? or would you use any readymade
>>> CMS?
>>> Or write everything from scratch?
>>>
>>> Question can also be generalized further like would php be your developing
>>> language? Or you'd develop your own new language out of the box. :)
>>>
>>> ---
>>> Use FreeOpenSourceSoftwares, Stop piracy, Let the developers live. Get
>>> a Free CD of Ubuntu mailed to your door without any cost. Visit :
>>> www.ubuntu.com
>>> --
>>>
>>>
>>>  Any ideas or tutorials on how to build a user profile page sort of like
 facebook?

 -Jeff


hi,

i would recommend Joomla or Wordpress both have extensions for user
maintained profiles with pictures.

Virgil
http://www.jampmark.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] adding whitespace to a timestamp

2009-02-23 Thread German Geek
Maybe the issue is that you are displaying the output in a browser and
spaces are not shown.

Try puttung   instead of a literal space.

Tim-Hinnerk Heuer

http://www.ihostnz.com
Henny Youngman  - "When I told my doctor I couldn't afford an operation, he
offered to touch-up my X-rays."

2009/2/24 Andrew Ballard 

> On Sat, Feb 21, 2009 at 1:28 PM, Eric Sherman 
> wrote:
> > I hoping to add a space between the date and the time in this:
> >
> > $thedate = date('M jS g:i A', $postTIME);
> >
> > i.e, between* jS* and *g:i*
> >
> > I've looked around but can't find anything.
> >
> > Thanks
> >
> > Eric Sherman
> > Multi Media Information
>
> You can put spaces anywhere in that string you want them. What problem
> are you having?
>
> 
> $thedate = date(' M   j  Sg  :   i
>   A   ', $postTIME);
>
> ?>
>
> Andrew
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


Re: [PHP] Having trouble with a multidimensional array menu - new and improved

2009-02-23 Thread Daevid Vincent
Okay, I scrapped my multi-array version and have come up with what seems
to be a cleaner recursive object way of doing this.

The last bit of help I need is in the expandSelectedMenu() part. I need
a way to store all the parent nodes above, then traverse them and set
their CSS class accordingly as per the comment in the code.

//FIXME: so the tricky part is to expand all the directories in the path
to $currentMenuItem
//   we should traverse the ->parent maybe?? and set all
//   goes to
document.getElementById($id).className = "navTree";
//  and (while not required it seems, but is good 
form)
//   
goes to
document.getElementById($id).className = "directory";
//   using the $id = str_replace(array(' ','\
\','-'),'',strtolower($value->menu));

I've tried to do some "$value->parent =& $parent;" but when I var_dump()
I start seeing all these *RECURSION* sections. It seems there should be
a nicer way to store the 'root node' so to speak, and not all the
children and recurse like that. I just can't figure it out.

I know that this probably won't render right for you as you need the CSS
and JS and all that, but I'm happy to share that with anyone that helps
out to get this solved in an elegant way. Also other suggestions and
improvements are welcome. I've attached a screen shot so you can see
what it looks like.
<>
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP] Unexpected results using ksort on arrays in which the keys are mixed alphanumeric strings.

2009-02-23 Thread Clancy
I have been experimenting using four character alphanumeric keys on an array, 
and when I
generated a random set of keys, and then used ksort to sort the array, I was 
very
surprised to find that if the key contained any non-numeric character, or if it 
started
with zero, the key was sorted as a base 36 number (0- 9, A-Z, as I expected. 
However if
the key only contained numbers, and did not start with zero, it was sorted to 
the end of
the list.

Thus:

0009
000A

0999
09A0
ASDF


1000


I presume this is related to last weeks discussions about casting variables, 
but I cannot
understand why 0999 should go to the start of the list, while 1000 goes to the 
end. Can
anyone explain this logically?

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Why PHP won

2009-02-23 Thread Paul M Foster
On Mon, Feb 23, 2009 at 01:39:51PM -0800, Daevid Vincent wrote:

> http://startuplessonslearned.blogspot.com/2009/01/why-php-won.html
> 

I *like* the way this guy thinks.

Paul

-- 
Paul M. Foster

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] ms-word reading from PHP on linux O.S

2009-02-23 Thread Srinivasa Rao D
thanks Lucas.This code is very helpful to me.


Re: [PHP] Why PHP won

2009-02-23 Thread Michael A. Peters

Paul M Foster wrote:

On Mon, Feb 23, 2009 at 01:39:51PM -0800, Daevid Vincent wrote:


http://startuplessonslearned.blogspot.com/2009/01/why-php-won.html



I *like* the way this guy thinks.

Paul



It was a decent page.
Point #2 though - you can use mod_rewrite to do wonders with respect to 
url presentation, and you can use DOMDocument to completely construct 
the page before sending it to the browser - allowing you to translate 
xhtml to html for browsers that don't properly support xhtml+xml.


Avoiding mixing html with php really is better, and php does let you do 
that fairly easily.


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] ms-word reading from PHP on linux O.S

2009-02-23 Thread Per Jessen
Srinivasa Rao D wrote:

> Hi all,
>   * How better, i can  read ms-word doc files  from PHP on LINUX
>   OS*.
[snip]
> 
>   *Is there are any other softwares that can fetch text from MS-WORD
>   file?.*

OpenOffice.



-- 
Per Jessen, Zürich (1.9°C)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Why PHP won

2009-02-23 Thread Per Jessen
Michael A. Peters wrote:

[anip]
> and you can use DOMDocument to completely
> construct the page before sending it to the browser - allowing you to
> translate xhtml to html for browsers that don't properly support
> xhtml+xml.

I suspect you meant "translate xml to html"?  I publish everything in
xhtml, no browser has had a problem with that yet.



-- 
Per Jessen, Zürich (2.1°C)


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php