ʹ�� PHP

���ڻ㼯������д PHP �ű�ʱ���������Ĵ������ͨ����

  1. ������PHP�����IJ���˳���������������
  2. ����дһ�����Դ����κα��������ݵ�ͨ�� PHP �ű�������ô֪���ĸ� POST �������������أ�
  3. ����Ҫ�����еĵ����ţ�'��ǰ��һ����б�ߣ�\����ʹ���DZ�ɣ�\'����������ܹ�ͨ��������ʽ��ʵ�֣���ͬ��ϣ���ܹ�����"��ת���ɣ�\"��������\��ת���ɣ�\\����
  4. �����еģ�"���ͣ�'����������ˣ�\"���ͣ�\'��������β���ȥ����Щ����Ҫ�ķ�б�ߣ�����Ϊʲô����γ��֣�
  5. PHP ѡ�� register_globals ������ʲôӰ�죿
  6. ����������ʱ�������ʾ�Ĵ����Ǵ�ģ� <?php function myfunc($argument) { echo $argument + 10; } $variable = 10; echo "myfunc($variable) = " . myfunc($variable); ?> ������ô���£�
  7. ���������ôû�зֳ�������ʾ�� <pre> <?php echo "This should be the first line."; ?> <?php echo "This should show up after the new line above."; ?> </pre>
  8. �ҵõ���Ϣ“Warning: Cannot send session cookie - headers already sent...”����“Cannot add header information - headers already sent...”��
  9. ����Ҫֱ�ӷ�������ͷ�е���Ϣ����ô�ܰ쵽��
  10. ������ IIS ���� HTTP ��֤ʱ�õ�“No Input file specified”��Ϣ��
  11. Windows�����ܷ�����һ̨�������� IIS ������ļ���
  12. ���������ʹ�� XML �� PHP���������ҵ� <?xml ��ǣ�
  13. ������ FrontPage ����������Ҫ���ҵĴ���������ȥ�� HTML �༭�����༭ PHP��
  14. ��������ҵ����п��õ� PHP Ԥ��������������б�
  15. �������ܲ��÷���ѵ���ҵ�⣨���� PDFLib�� ������ PDF �ĵ�������Ҫ����ѵIJ��Ҳ���Ҫ�����ӱ�� PDF �⡣
  16. ���������û��Զ��庯���з���һ����׼�� CGI ���������� $DOCUMENT_ROOT �� $HTTP_REFERER���������Ҳ�����������˴�
  17. ��Щ PHP��ѡ����Խ�����д���ֽ�ֵ������ܽ��� integer�ֽ�ֵ�෴��������Щ��д�ֽ�ֵ�����Խ������� php.ini ֮����
  18. Windows: I keep getting connection timeouts when using localhost, whereas "127.0.0.1"works?
������PHP�����IJ���˳���������������

PHP is a glue that brings together hundreds of external libraries, so sometimes this gets messy. However, a simple rule of thumb is as follows:

Array functionparameters are ordered as " needle, haystack" whereas String functionsare the opposite, so " haystack, needle".

����дһ�����Դ����κα��������ݵ�ͨ�� PHP �ű�������ô֪���ĸ� POST �������������أ�

PHP �ṩ�ܶ�" Ԥ�������"�����糬ȫ�ֱ��� $_POST�����Ա��� $_POST��������Ϊ����һ��������ͨ�� POST ����������������ϵ�����顣���磬������ foreach�򵥵ر���������� empty()ֵ���Լ������������

<?php
$empty 
$post = array();
foreach (
$_POST as $varname => $varvalue) {
    if (empty(
$varvalue)) {
        
$empty[$varname] = $varvalue;
    } else {
        
$post[$varname] = $varvalue;
    }
}

print 
"<pre>";
if (empty(
$empty)) {
    print 
"None of the POSTed values are empty, posted:\n";
    
var_dump($post);
} else {
    print 
"We have " count($empty) . " empty values\n";
    print 
"Posted:\n"var_dump($post);
    print 
"Empty:\n";  var_dump($empty);
    exit;
}
?>

Note: Superglobal ������˵����

�� PHP 4.1.0 �����ʹ�� Superglobal ���飬���� $_GET��$_POST���� $_SERVER���ȵȡ�������Ϣ���Ķ��ֲ��е� superglobals �½ڡ�

����Ҫ�����еĵ����ţ�'��ǰ��һ����б�ߣ�\����ʹ���DZ�ɣ�\'����������ܹ�ͨ��������ʽ��ʵ�֣���ͬ��ϣ���ܹ�����"��ת���ɣ�\"��������\��ת���ɣ�\\����

���� addslashes()�ܹ�ʵ�����ֲ���������ĺ��� mysql_escape_string()�����⣬�������ú��� stripslashes()��ȥ����б�ߡ�

Note: ����ѡ��˵���� magic_quotes_gpc

����ѡ��magic_quotes_gpcĬ��ֵΪ on���൱�ڶ����� GET, POST, and COOKIE ����ʹ���� addslashes()�������� stripslashes() ��ȥ�����ǡ�

�����еģ�"���ͣ�'����������ˣ�\"���ͣ�\'��������β���ȥ����Щ����Ҫ�ķ�б�ߣ�����Ϊʲô����γ��֣�

PHP ���� stripslashes()�ܹ��� string��ȥ�����еķ�б�ߡ���Щ��б�߳������п��ܵ�ԭ���� PHP ������ magic_quotes_gpc��������

Note: ����ѡ��˵���� magic_quotes_gpc

����ѡ��magic_quotes_gpcĬ��ֵΪ on���൱�ڶ����� GET, POST, and COOKIE ����ʹ���� addslashes()�������� stripslashes() ��ȥ�����ǡ�

PHP ѡ�� register_globals ������ʲôӰ�죿

����Ҫ����������ѡ������á���������ʹ������URL�� http://example.com/foo.php?animal=cat����ô�� foo.php�����ǿ��ܻ�ʹ�����´��룺

<?php
// ����ʹ�����ַ��ʱ����ķ�ʽ
echo $_GET['animal'];

// �����ֱ�ӷ���$animal��������Ҫ��register_globalsѡ������Ϊon
// ǿ�ҽ��鲻Ҫ��ô������
echo $animal;

// ���ѡ���ֵ��Ӱ�쵽���б���������$_SERVER
// �����Ǹ�ѡ������Ϊoffʱ����ȷд��
echo $_SERVER['PHP_SELF'];

// ͬ����Ҫʹ$PHP_SELF�����Զ���Ч��register_globalsѡ���������Ϊon
// ǿ�ҽ��鲻Ҫ��ô������
echo $PHP_SELF;
?>

����Ĵ��������register_globals�����ã������Զ����ɱ��������ֱ�̷�ʽ���ܶ�������ϲ��������PHP����register_globalsĬ������Ϊoff����PHP6�����ѡ�ɾ���ˡ�����Ŀǰ���󲿷�����������Ĭ�ϰ�register_globals���á���ע�⣬�����Ķ���ʱ�����¡��̳�ʱ������Ҫ�Ѹ�ѡ������������ʾ�����벻��ͨ��������ʵ�ʿ������У�ǿ�ҽ��齫������Ϊoff��������ܻᵼ�°�ȫ���⡣

�����������Դ��һ���˽⣺

Note:

����ʾ���У�����ʹ����һ�� URL�����а�����һ��QUERY_STRING��PHP���QUERY_STRING�е���Ϣͨ��GET HTTP���󴫵ݣ��������ǿ���ͨ������ȫ�ֱ�����superglobal�� $_GET���������еı�����

����������ʱ�������ʾ�Ĵ����Ǵ�ģ�
<?php
function myfunc($argument)
{
    echo 
$argument 10;
}
$variable 10;
echo 
"myfunc($variable) = " myfunc($variable);
?>
������ô���£�

Ҫ��һ�����ʽ�У�����������������к������ַ������ӣ�ʹ�ú����Ľ������Ҫ return���ֵ�������� echo����

���������ôû�зֳ�������ʾ��
<pre>
<?php echo "This should be the first line."?>
<?php 
echo "This should show up after the new line above."?>
</pre>

�� PHP �У�һ�δ���Ľ������Ҫô��"?>"Ҫô��"?>\n"��\n ��ʾ���У������������������У�����ľ��ӽ���ʾ��ͬһ���У���Ϊ PHP �����˴��������Ǻ���Ļ��С�����ζ�����Ҫ���һ�����з�����Ҫ��ÿ�� PHP ����Ľ�����Ǻ�����һ�����С�

PHP Ϊʲô��ô���أ���Ϊ�ڸ�ʽ�������� HTML ʱ������ͨ��������ס���������˻��ж��㲻��Ҫ�������ʱ���Ͳ��ò���һ���dz����������ﵽ������Ч���������ò����� HTML ҳ���Դ�ļ��ĸ�ʽ���Ѷ���

�ҵõ���Ϣ"Warning: Cannot send session cookie - headers already sent..."����"Cannot add header information - headers already sent..."��

���� header()�� setcookie()�� session ������Ҫ������������ͷ��Ϣ������ͷ��Ϣֻ���������κ��������֮ǰ���͡���ʹ����Щ����ǰ�������κΣ��� HTML������������� headers_sent()�ܹ����ű��Ƿ��Ѿ�������ͷ��Ϣ������� ������ƺ�����

����Ҫֱ�ӷ�������ͷ�е���Ϣ����ô�ܰ쵽��

����� Apache ��ģ�鷽ʽ���� PHP����ô���� getallheaders()����������¡��������Ĵ��������ʾ���е�����ͷ��

<?php
$headers 
getallheaders();
foreach (
$headers as $name => $content) {
    echo 
"headers[$name] = $content<br />\n";
}
?>

������ apache_lookup_uri()�� apache_response_headers()�� fsockopen()��

������ IIS ���� HTTP ��֤ʱ�õ�"No Input file specified"��Ϣ��

IIS �İ�ȫģ��������ë������������ IIS �����е� CGI ���������е����⡣һ������취�ǽ���һ���� HTML �ļ��������� PHP ��������ΪҪ������֤Ŀ¼�ĵ�¼ҳ�棬Ȼ���� META ������ض��� PHP ҳ�棬������һ�����ӵ� PHP ҳ�档Ȼ�� PHP �Ϳ�����ȷʶ����֤��Ϣ�ˡ�������� ISAPI ģ�飬��û��������⡣���� NT �µ� web ���������ܴ�Ӱ�졣������Ϣ�� » http://support.microsoft.com/kb/q160422/�� HTTP ��֤һ�¡�

Windows�����ܷ�����һ̨�������� IIS ������ļ���

����Ҫ��Щ�޸ġ��� Internet ��Ϣ�������ҵ���� PHP �ļ���������ҳ��ѡ�� �ļ���ȫ����ǩ����� �������ʺ������֤������"�༭"��ť��

���������������������һ�Dz�Ҫѡ�� ������������ѡ�� ���� Windows �����֤������ѡ�� �����������༭��������ʹ�õ��ʻ����ij�һ����Ȩ�޵ġ�

���������ʹ�� XML �� PHP���������ҵ� <?xml ��ǣ�

Ҫ�ܹ��� PHP ������ֱ��Ƕ�� <?xml����Ҫ�� PHP ������ short_open_tags����Ϊ 0�Թرն̱�Ǹ�ʽ���޷�ͨ������ ini_set()�������������á����� short_open_tags�ǿ����߹أ��������������� <?php echo '<?xml'; ?>�ķ����ﵽĿ�ġ��������õ�Ĭ��ֵΪ����

������ FrontPage ����������Ҫ���ҵĴ���������ȥ�� HTML �༭�����༭ PHP��

��򵥵ķ������� PHP ����Ҳ��ʹ�� ASP ��ǡ������������ ASP ���� <% �� %> ���붨�����һЩ���е� HTML �༭���ڴ���˸�ʽ�ϸ������ܻ�һЩ��Ŀǰ��ˣ���Ҫʹ�� ASP ���ı�ǣ���Ҫ�� php.ini �д� asp_tags����������Ӧ�� Apache ����ѡ�

��������ҵ����п��õ� PHP Ԥ��������������б�

���Ķ��ֲ��е� Ԥ�������һ�£��ò��ֵ��ĵ��Ѿ�������һ���ֿ���������Ľű���Ԥ����������б����ñ����������б���������Ϣ������ͨ������ phpinfo()���������ġ�������Ķ��ֲ��� ���� PHP ֮��ı���һ�ڣ��ⲿ���ĵ��������ⲿ�����ĸ���������� HTML ����Cookie �� URL �ı�����

Note: register_globals ��Ҫ˵����

�� PHP 4.2.0 ��PHP ָ�� register_globals ��Ĭ��ֵΪ off��PHP �������������߲�Ҫ�����ڴ�ָ��, �������ֶ����������superglobals��

�������ܲ��÷���ѵ���ҵ�⣨���� PDFLib�� ������ PDF �ĵ�������Ҫ����ѵIJ��Ҳ���Ҫ�����ӱ�� PDF �⡣

�м���ѡ������ » FPDF �� » TCPDFģ�顣

There is also the Haru extension that uses the free libHaru external library.

���������û��Զ��庯���з���һ����׼�� CGI ���������� $DOCUMENT_ROOT �� $HTTP_REFERER���������Ҳ�����������˴�

���ȷdz���Ҫ��һ���� PHP ������ register_globalsͬ����Է������˺ͻ�����������Ӱ�졣�� register_globals = off ���� PHP 4.2.0 ��ʼ��Ĭ��ֵΪ off�������� $DOCUMENT_ROOT��������ڣ���ֻ�� $_SERVER['DOCUMENT_ROOT']����� register_globals = on ����� $DOCUMENT_ROOT�� $GLOBALS['DOCUMENT_ROOT']��ͬʱ���ڡ�

���ȷ�� register_globals = on ����֪��Ϊʲô $DOCUMENT_ROOT�ں����ڲ������ã�������Ϊ���������ı���һ����Ҫ�ں�����ִ�� global $DOCUMENT_ROOT��������ֲ��е� ������Χһ�ڡ������� register_globals = off ������½��б��롣

Note: Superglobal ������˵����

�� PHP 4.1.0 �����ʹ�� Superglobal ���飬���� $_GET��$_POST���� $_SERVER���ȵȡ�������Ϣ���Ķ��ֲ��е� superglobals �½ڡ�

��Щ PHP��ѡ����Խ�����д���ֽ�ֵ������ܽ��� integer�ֽ�ֵ�෴��������Щ��д�ֽ�ֵ�����Խ������� php.ini ֮����

���õ�ѡ���� K����Ӧ Kilobytes����M����Ӧ Megabytes���� G����Ӧ Gigabytes���� PHP 5.1.0 ����ã������ִ�Сд������Ķ���Ϊ���ֽڡ� 1M����һ�� Megabyte���� 1048576�ֽڡ� 1K����һ�� Kilobyte���� 1024�ֽڡ������� php.ini ֮��ʹ����Щ���ţ������������ integer�ֽ�ֵ���μ� ini_get()�ĵ��е�ת��ʾ����

Note: kilobyte versus kibibyte

The PHP notation describes one kilobyte as equalling 1024 bytes, whereas the IECstandard considers this to be a kibibyte instead. Summary: k and K = 1024 bytes.

Windows: I keep getting connection timeouts when using localhost, whereas "127.0.0.1"works?

Prior to PHP 5.3.4, there was a bug in the network resolving code inside PHP that caused localhostin all stream related situations to fail if IPv6 was enabled. To work around this issue you can either use "127.0.0.1"or disable IPv6 resolving in the hostsfile.