php-general Digest 1 Sep 2007 17:07:14 -0000 Issue 4994

Topics (messages 261582 through 261595):

Re: How to show proper time to users from around the world
        261582 by: Hemanth

Re: Is a small memory footprint better for a php script?
        261583 by: Per Jessen

Re: regular expression question
        261584 by: Richard Heyes

strange reference behavior
        261585 by: Robert Enyedi
        261586 by: Martin Ellingham
        261591 by: Robert Cummings
        261592 by: Robert Cummings
        261594 by: Robert Enyedi

mail() silly question
        261587 by: Rodrigo Poblanno Balp
        261588 by: Ludovic André
        261589 by: chris smith
        261593 by: Bastien Koert

Re: Which CAPTCHA is the besta?
        261590 by: Ronald Wiplinger

Re: Best Practices for calling 'setup' classes that extend  'parent' classes?
        261595 by: Graham Anderson

Administrivia:

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [EMAIL PROTECTED]


----------------------------------------------------------------------
--- Begin Message ---
what is the time shown by gmail with every mail ?

--- End Message ---
--- Begin Message ---
Mark wrote:

> Hey,
> 
> I'm wondering something about memory usage.
> I just looked at how much memory the newest phpbb is using and that's
> over 2 mega bytes!!
> 
> Now i'm working on a php script that is currently using around 600
> kilo bytes.
> 
> The question now is: what is better? a script with a small memory
> usage? or is that something i don't need to look at?

As a rule of thumb, using less resources (memory/disk/cpu) is better. 
Though depending on your actual situation, it may not be _visibly_
better.  (a large machine with a lot of resources can cope with a lot
of resource abuse/waste without performance ever suffering).


/Per Jessen, Zürich

--- End Message ---
--- Begin Message ---
But how? The +[a-z]{2,} seems to allow at least two a-z clusters, but it doesn't include a period. /ml

Almost correct. The plus belongs to whatever comes before it, not after. So what you're referring to as matching two or more characters but not the period, is this:

[a-z]{2,}

And this will match one or more  "subdomains":

([-a-z0-9]+\.)+

--
Richard Heyes
+44 (0)800 0213 172
http://www.websupportsolutions.co.uk

Knowledge Base and HelpDesk software
that can cut the cost of online support

--- End Message ---
--- Begin Message ---
Hi,

I've been studying the PHP reference mechanism (with PHP 5.2.1) and I'm unsure if the following behavior is normal.

This code works as expected:

        $a = 2;
        $b = &$a;
        //$c = &$a;
        $c = $b;
        $a = 1;

        echo $c."\n"; // Prints "2" as expected

but this one does not:

        $a = 2;
        $b = &$a;
        $c = &$a;
        $c = $b; // Should overwrite the previous assignment, so $c
                 // should get a copy of $b (and NOT a reference)
        $a = 1;
        
        echo $c."\n"; // I would expect "2", but prints "1"

Could anyone please clarify why this happens?

Regards,
Robert

--- End Message ---
--- Begin Message ---
Robert Enyedi wrote:
Hi,

I've been studying the PHP reference mechanism (with PHP 5.2.1) and I'm unsure if the following behavior is normal.

This code works as expected:

    $a = 2;
    $b = &$a;
    //$c = &$a;
    $c = $b;
    $a = 1;

    echo $c."\n"; // Prints "2" as expected

but this one does not:

    $a = 2;
    $b = &$a;
    $c = &$a;
    $c = $b; // Should overwrite the previous assignment, so $c
         // should get a copy of $b (and NOT a reference)
    $a = 1;
echo $c."\n"; // I would expect "2", but prints "1"

Could anyone please clarify why this happens?

Regards,
Robert

This is because PHP5 has changed the default behaviour and $a = $b is now call by reference as standard.

That's my understanding of it.

Martin

--- End Message ---
--- Begin Message ---
On Sat, 2007-09-01 at 13:06 +0300, Robert Enyedi wrote:
> Hi,
> 
> I've been studying the PHP reference mechanism (with PHP 5.2.1) and I'm 
> unsure if the following behavior is normal.
> 
> This code works as expected:
> 
>       $a = 2;
>       $b = &$a;
>       //$c = &$a;
>       $c = $b;
>       $a = 1;
> 
>       echo $c."\n"; // Prints "2" as expected
> 
> but this one does not:
> 
>       $a = 2;
>       $b = &$a;
>       $c = &$a;
>       $c = $b; // Should overwrite the previous assignment, so $c
>                // should get a copy of $b (and NOT a reference)
>       $a = 1;
>       
>       echo $c."\n"; // I would expect "2", but prints "1"
> 
> Could anyone please clarify why this happens?

Sure...


1: $a = 2;
2: $b = &$a;
3: $c = &$a;
4: $c = $b;   // Should overwrite the previous assignment, so $c
5:            // should get a copy of $b (and NOT a reference)
6: $a = 1;
7:
8: echo $c."\n"; // I would expect "2", but prints "1"

By line number...

1: Assign 2 to a variable called $a
2: Assign to $b a reference to $a
3: Assign to $c a reference to $a
4: Assign the value of $b to $c
   (this does NOT break $c's reference to $a)
6: Assign the value 1 to $a
   ($a is currently referenced by $b and $c)
8: Echo $c which should be 1. You will get the same result
   in PHP4

Cheers,
Rob.
-- 
...........................................................
SwarmBuy.com - http://www.swarmbuy.com

    Leveraging the buying power of the masses!
...........................................................

--- End Message ---
--- Begin Message ---
On Sat, 2007-09-01 at 11:39 +0100, Martin Ellingham wrote:
> Robert Enyedi wrote:
> > Hi,
> >
> > I've been studying the PHP reference mechanism (with PHP 5.2.1) and 
> > I'm unsure if the following behavior is normal.
> >
> > This code works as expected:
> >
> >     $a = 2;
> >     $b = &$a;
> >     //$c = &$a;
> >     $c = $b;
> >     $a = 1;
> >
> >     echo $c."\n"; // Prints "2" as expected
> >
> > but this one does not:
> >
> >     $a = 2;
> >     $b = &$a;
> >     $c = &$a;
> >     $c = $b; // Should overwrite the previous assignment, so $c
> >          // should get a copy of $b (and NOT a reference)
> >     $a = 1;
> >     
> >     echo $c."\n"; // I would expect "2", but prints "1"
> >
> > Could anyone please clarify why this happens?
> >
> > Regards,
> > Robert
> >
> This is because PHP5 has changed the default behaviour and $a = $b is 
> now call by reference as standard.

In the above example no objects have been used. As such, nothing has
changed in the above semantics that do not exist in PHP4.

Cheers,
Rob.
-- 
...........................................................
SwarmBuy.com - http://www.swarmbuy.com

    Leveraging the buying power of the masses!
...........................................................

--- End Message ---
--- Begin Message ---
Thanks for the clarifications.

Regards,
Robert

Robert Cummings wrote:
On Sat, 2007-09-01 at 11:39 +0100, Martin Ellingham wrote:
Robert Enyedi wrote:
Hi,

I've been studying the PHP reference mechanism (with PHP 5.2.1) and I'm unsure if the following behavior is normal.

This code works as expected:

    $a = 2;
    $b = &$a;
    //$c = &$a;
    $c = $b;
    $a = 1;

    echo $c."\n"; // Prints "2" as expected

but this one does not:

    $a = 2;
    $b = &$a;
    $c = &$a;
    $c = $b; // Should overwrite the previous assignment, so $c
         // should get a copy of $b (and NOT a reference)
    $a = 1;
echo $c."\n"; // I would expect "2", but prints "1"

Could anyone please clarify why this happens?

Regards,
Robert

This is because PHP5 has changed the default behaviour and $a = $b is now call by reference as standard.

In the above example no objects have been used. As such, nothing has
changed in the above semantics that do not exist in PHP4.

Cheers,
Rob.

--- End Message ---
--- Begin Message --- I have a question that might be too silly for those of you who are PHP gurus.

Here it comes:

I had a mail (specifically in the headers) function call like this:

$header = "";
$header .= 'From: [EMAIL PROTECTED]";
$header .= 'MIME-Version: 1.0\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "Reply-To: ".utf8_decode($nombreVar)." ".utf8_decode($apellidosVar)."<$mailVar>\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";
$header .= "X-Priority: 1";

and the mail(...) function always returned TRUE, but the mail was NOT sent.

After hours of... trial/error debugging, I noticed from an example that it should be:

$header = "";
$header .= 'From: [EMAIL PROTECTED]' . "\r\n";
$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "Reply-To: ".utf8_decode($nombreVar)." ".utf8_decode($apellidosVar)."<$mailVar>\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";
$header .= "X-Priority: 1";

Question:

Why? What's the real difference between
   $header .= 'From: [EMAIL PROTECTED]' . "\r\n";
and
   $header .= 'From: [EMAIL PROTECTED]";

?
If somebody knows, please let me know!

Thank you in advance.

--- End Message ---
--- Begin Message ---
Hi,
Question:

Why? What's the real difference between
   $header .= 'From: [EMAIL PROTECTED]' . "\r\n";
and
   $header .= 'From: [EMAIL PROTECTED]";

Your second declaration is incorrect: you start with a single quote ('), and you end with a double (").

So, you'd say "ok, let's fix it":
$header .= 'From: [EMAIL PROTECTED]';

BUT, special chars like \n or \r need to be inside a double-quoted string in order to be taken into account.

This one is then correct:
$header .= 'From: [EMAIL PROTECTED]' . "\r\n";

This one as well:
$header .= "From: [EMAIL PROTECTED]";


Ludovic André

--- End Message ---
--- Begin Message ---
On 9/1/07, Rodrigo Poblanno Balp <[EMAIL PROTECTED]> wrote:
> I have a question that might be too silly for those of you who are PHP
> gurus.
>
> Here it comes:
>
> I had a mail (specifically in the headers) function call like this:
>
> $header = "";
> $header .= 'From: [EMAIL PROTECTED]";
> $header .= 'MIME-Version: 1.0\r\n";
> $header .= 'Content-type: text/html; charset=iso-8859-1\r\n";
> $header .= "Reply-To: ".utf8_decode($nombreVar)."
> ".utf8_decode($apellidosVar)."<$mailVar>\r\n";
> $header .= "X-Mailer: PHP/".phpversion()."\r\n";
> $header .= "X-Priority: 1";
>
> and the mail(...) function always returned TRUE, but the mail was NOT sent.
>
> After hours of... trial/error debugging, I noticed from an example that
> it should be:
>
> $header = "";
> $header .= 'From: [EMAIL PROTECTED]' . "\r\n";
> $header .= 'MIME-Version: 1.0' . "\r\n";
> $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
> $header .= "Reply-To: ".utf8_decode($nombreVar)."
> ".utf8_decode($apellidosVar)."<$mailVar>\r\n";
> $header .= "X-Mailer: PHP/".phpversion()."\r\n";
> $header .= "X-Priority: 1";
>
> Question:
>
> Why? What's the real difference between
>     $header .= 'From: [EMAIL PROTECTED]' . "\r\n";
> and
>     $header .= 'From: [EMAIL PROTECTED]";

Actually that's a parse error ;) You have a single quote at the start
and double at the end.

Anyway, the reason is interpolation. See
http://www.php.net/manual/en/language.types.string.php

Under "Single quoted":

.. escape sequences for special characters will not be expanded when
they occur in single quoted strings.

So you end up with a literal '\r\n' at the end of the line, not an
actual carriage return & newline that you expect.

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

--- End Message ---
--- Begin Message ---
no difference

bastien







----------------------------------------> Date: Sat, 1 Sep 2007 08:00:11 -0500> 
From: [EMAIL PROTECTED]> To: [EMAIL PROTECTED]> Subject: [PHP] mail() silly 
question>> I have a question that might be too silly for those of you who are 
PHP> gurus.>> Here it comes:>> I had a mail (specifically in the headers) 
function call like this:>> $header = "";> $header .= 'From: [EMAIL 
PROTECTED]";> $header .= 'MIME-Version: 1.0\r\n";> $header .= 'Content-type: 
text/html; charset=iso-8859-1\r\n";> $header .= "Reply-To: 
".utf8_decode($nombreVar)."> ".utf8_decode($apellidosVar)."\r\n";> $header .= 
"X-Mailer: PHP/".phpversion()."\r\n";> $header .= "X-Priority: 1";>> and the 
mail(...) function always returned TRUE, but the mail was NOT sent.>> After 
hours of... trial/error debugging, I noticed from an example that> it should 
be:>> $header = "";> $header .= 'From: [EMAIL PROTECTED]' . "\r\n";> $header .= 
'MIME-Version: 1.0' . "\r\n";> $header .= 'Content-type: text/html; 
charset=iso-8859-1' . "\r\n";> $header .= "Reply-To: 
".utf8_decode($nombreVar)."> ".utf8_decode($apellidosVar)."\r\n";> $header .= 
"X-Mailer: PHP/".phpversion()."\r\n";> $header .= "X-Priority: 1";>> 
Question:>> Why? What's the real difference between> $header .= 'From: [EMAIL 
PROTECTED]' . "\r\n";> and> $header .= 'From: [EMAIL PROTECTED]";>> ?> If 
somebody knows, please let me know!>> Thank you in advance.>> --> PHP General 
Mailing List (http://www.php.net/)> To unsubscribe, visit: 
http://www.php.net/unsub.php>

_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE

--- End Message ---
--- Begin Message ---
Hamza Saglam wrote:
Not a script you can install/hack but why don't you have a look at: http://recaptcha.net/ ?


I am going to try that one. It sounds good and gives me a feeling to do something good to the community as well.
Which version have you tried? Java or PHP? How to set-up PHP?

Some people say that captcha is just to bother humans, while the robots are learning faster to deal with it!

bye

Ronald
Regards,
Hamza.


""Tony Di Croce"" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
I need a CAPTCHA script.... Which one is the best? (I dont mind if its
somewhat difficult).


--- End Message ---
--- Begin Message ---
Many thanks :)
This was very helpful.



On Aug 26, 2007, at 8:27 PM, Richard Lynch wrote:

Put all your classes into a single directory structure.

Use http://php.net/set_include_path (or php.ini or .htaccess) to
provide the FULL PATH to that directory.

PHP now knows where to "start" its search, and essentially prepends
that directory when it does an include.

Assume this directory structure:

/path/to/your/includes
   parent_class.php
   /child
      some_child_class.php

This works:
<?php
set_include_path('/path/to/your/includes');
include 'parent_class.php';
include 'child/some_child_class.php';
?>

Do not under any circumstances try to use './' or '../' in your
include statements.  You will only make yourself miserable in the long
run.

On Mon, August 20, 2007 1:52 pm, Graham Anderson wrote:
What is the best practice for correctly targeting  'include' paths
when using Initialization/Setup classes that extend Parent classes?

In my extend_parent_class.php file, I have to provide an incorrect
relative path. Apparently, the path (that does work) is relative to
php file that calls the initialization/setup class
(call_the_extend_parent_class.php).  Is there a less confusing way to
correctly target include paths when creating initialization classes?

Should I be using absolute paths instead?

many thanks in advance



extend_parent_class.php:

include_once('./path/to/parent_class.php'); # Works with 'incorrect'
relative path
//include_once('../path/to/parent_class.php'); # Fatal Error with
'correct' relative path

class Initialize_Parent_Class extends Parent_Class {

function Initialize_Parent_Class()
  {
$this->Parent_Class();
echo "This was successful and does not result in a fatal 'class not
found' error";
}

}



Call the initialization class.
call_the_extend_parent_class.php:
<?php

require('./includes/extend_parent_class.php'); # initialize Parent
Class

$parent_class = new Initialize_Parent_Class();
// prints 'This was successful and does not result in a fatal 'class
not found' error'

?>

File structure:

php
++call_the_extend_parent_class.php
++ includes directory
   ++++ extend_parent_class.php
++ classes directory
    ++++ parent_class.php

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




--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?


--- End Message ---

Reply via email to