Parse error: syntax error, unexpected T_LNUMBER
<?php教程
//首先你的变量赋值有问题,在没有进行str_replace()的时候就会报错
$a = '"女老师竭力向孩子们证明,<span>学习好功课的重要性女老师竭<a href="1">2222222222</a>力向孩子们‘证明’,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明,学习好功课的重要性女老师竭力向孩子们证明"';
<? echo str_replace("",""",$a)
失败 提示 $a=""; 错误 Parse error: syntax error, unexpected T_LNUMBER
正确方法
方法一
echo str_replace(array('"',"'","‘","’"),"",$a);
方法二
str_replace("'"“","",$a)
php教程 Undefined index和Undefined variable的解决方法
$act=$_POST['act'];
用以上代码总是提示
Notice: Undefined index: act in F:windsflybookpost.php on line 18
另外,有时还会出现
引用内容
Notice: Undefined variable: Submit ......
等一些这样的提示
原因:由于变量未定义引起的
解决方法:
1) error_reporting设置:
找到error_reporting = E_ALL
修改为error_reporting = E_ALL & ~E_NOTICE
2) register_globals设置:
找到register_globals = Off
修改为register_globals = On
Notice: Undefined variable: email in D:PHP5ENOTEADDNOTE.PHP on line 9
Notice: Undefined variable: subject in D:PHP5ENOTEADDNOTE.PHP on line 9
Notice: Undefined variable: comment in D:PHP5ENOTEADDNOTE.PHP on line 9
........
本来php是不需要定义变量的,但是出现这种情况应该怎么办呢?
只要在C:WINDOWS找出php.ini的
在php.ini中的302行 error_reporting = E_ALL
修改成
error_reporting = E_ALL & ~E_NOTICE再重启apache2.2就行了
解决方法:修改php.ini
将: error_reporting = E_ALL
修改为:error_reporting = E_ALL & ~E_NOTICE
如果什么错误都不想让显示,直接修改:
display_errors = Off
如果你没有php.ini的修改权限,可在php头部加入
ini_set("error_reporting","E_ALL & ~E_NOTICE");
即可
empty 和 is_null有什么区别?
bool empty ( mixed $var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。
///////////////////////////////////////////////////////////////////////////////////////////
在下列情况下一个变量被认为是 NULL:
bool is_null ( mixed $var )
如果 var 是 null 则返回 TRUE,否则返回 FALSE。
被赋值为 NULL。
尚未被赋值。
被 unset()。
Mail Body的来源有时直接就是TextBox中的文本内容,但是如果对文本内容没有做处理的话,文本就会没有任何的格式,挤在一起,逐行显示。现在说的是如何让文本内容可以换行,然后不至于挤在一起。
单步调试时,会发现获取到的文本内容中,文本中的换行被替换成了"rn",因为一直没有发现这个,导致绕了很大的圈子。既然找到了这个原因的话,就可以将这个字符串替换成HTML的<br/>了。
ex:string strBody = Body.Replace("rn","<br/>");
虽然很easy,但当时不知道的时候确实很头疼,希望对你也会有用。
实例
<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="t" id="t" cols="45" rows="5"></textarea>
</label>
<label>
<input type="submit" name="button" id="button" value="提交" />
</label>
</form>
<?php教程
if($_POST){
echo str_replace(chr(13),'<br>',$_POST['t']);
}
?>
更多详细内容请查看:http://www.111cn.net/phper/29/ff8b04e8f5b663b8b86d960321efcc83.htm
PHP中iconv函数字符串从GBK转换为UTF8字符集
1. iconv()介绍
iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。
iconv函数在php教程5中内置,GB字符集默认打开。
2. iconv()错误
iconv在转换字符”—”到gb2312时会出错,解决方法是在需要转成的编码后加 “//IGNORE”,也就是iconv函数第二个参数后.如下:
iconv("UTF-8", "GB2312//IGNORE", $data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
3. iconv()例子
例1:
<?php
echo $str= ‘你好,这里是卖咖啡!’;
echo '<br />';
echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
echo '<br />';
echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节
print_r(iconv_get_encoding()); //得到当前页面编码信息
echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度
?>
例2:
如果你的PHP文件是UTF-8编码的,那么下面的代码就可以正确输出:
<?php
$str='我爱百度';
$utf='';
for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1)));
echo $utf;
?>如果你的PHP文件是GB的,那么下面的代码可以工作:
<?php
$str='我爱百度';
$str=iconv("GBK", "UTF-8", $str);
$utf='';
for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1)));
echo $utf;
?>以上情况下,程序输出的内容是:
%E6%88%91%E7%88%B1%E7%99%BE%E5%BA%A6