大牛们,求指教php 本帖最后由 lan_hai_qi 于 2011-10-12 10:56:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 而且我用数组输出fie()读取的文件内容的时候我用print_r输出 的时候他是这种结果它连续输出三次结果我就更加不明白了大牛们,快出来啊! 第一个问题:中文是多字节编码,一般是两个字节对应一个汉字,fgetc是一个字符一个字符读取的,所以会导致乱码问题。可以这样:<?php$fp = fopen('test2.txt', 'rb');$ch ="";while (false !== ($char = fgetc($fp))) { $ch.=$char;}echo $ch;?> 第二个问题。因为换行符在文件中是“\n”,而在网页中是“<br/>”.所以换行符\n在网页中显示只是一个小空格而已。可以用nl2br函数把\n换成<br/><?php$filen = file('test2.txt');foreach($filen as $val){ echo nl2br($val);} 代码:$array=file("C:\\Users\\Administrator\\Desktop\\qi.txt");foreach($array as $key=>$value){ //echo $value; print_r($array); }结果:Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) 第一个和第二个问题解决了,谢谢大牛们!哪位大牛愿意加个好友,qq的QQ:237151944这样我就方便问了! 你这,让人情何以堪啊?foreach中print_r($array)怎么可能不是三次呢,如果有10行数据,那就是10次。$array=file("C:\\Users\\Administrator\\Desktop\\qi.txt");foreach($array as $value){ print_r($value); } 那个教我东西的牛人(ohmygirl),能不能加个q,我真心想求教一些问题的! 为什么我用$result=mysql_fetch_array($squery)显示我的数据库当中的一个表时输出的会是这种情况,能解释一下不?(说明一下,我用了foreach的循环输出的)代码:$server="localhost"; $username="ming"; $password="qin"; if($connetID=@mysql_connect($server,$username,$password)) { echo "数据库连接成功!"; if(mysql_select_db("db_student",$connetID)) { echo "数据库选择成功!"; //$fopen=fopen("db.opt","r"); $squery=mysql_query("select aa,bb,cc from dd",$connetID); $result=mysql_fetch_array($squery); foreach($result as$key=>$value ) { echo $value."<br>"; } } else { echo "数据库选择失败!"; } }else { echo "数据库连接失败!";}我的表是: aa bb cc 12 11 11 12 11 11 12 11 11 输出是:121211111111 while($result=mysql_fetch_array($squery,MYSQL_ASSOC)){ foreach($result as $value){ echo $value."<br>"; }} $result=mysql_fetch_array($squery);是取一条数据。你对这一条数据循环取是各个字段的值么?正确的取法是:while($result = mysql_fetch_array($squery)){ echo $result['aa']."<br/>"; echo $result['aa']."<br/>"; echo $result['aa']."<br/>"; } //while中的这三句可以换成你的foreach循环,也就是:while($result = mysql_fetch_array($squery)){ foreach($result as $key=>$value ) { echo $value."<br>"; } } //将hello写入到test.txt文件中$str = 'hello';file_put_contents('./test.txt',$str);//获取百度首页的信息$str = file_getcontents('http://www.baidu.com');print $str 关联索引就是用类似名字的东东作为key,例如:$arr = array('name'=>'jobs','age'=>'56');数字索引当然就是平时遇到的数字作为键值。$arr =array(0=>'aa',1=>'bb',3=>'cc'); 怪不得,我在while($result = mysql_fetch_array($squery)){ foreach($result as $key=>$value ) { echo $value."<br>"; } }里面mysql_fetch_array($squery)应该设置个参数,MYSQL_NUM或者是MYSQL_ASSOC,不然它默认的话好像会输出重复的数组元素,加一个参数就不会有重复元素的输出了!学习数组了!!大牛们太有爱了,解决问题的感觉真是爽!!!! 而且大牛while($result = mysql_fetch_array($squery)){ echo $result['aa']."<br/>"; echo $result['aa']."<br/>"; echo $result['aa']."<br/>";}和while($result = mysql_fetch_array($squery)){ foreach($result as $key=>$value ) { echo $value."<br>"; } }的输出结果是不一样的第一个是输出是连续输出aa的数据三次 也就是12 12 12 12 12 12 12 12 12第二个是输出一行,也就是等价于echo $result['aa']."<br/>"; echo $result['bb']."<br/>"; echo $result['cc']."<br/>";那么结果就是按行输出表,结果是:12 11 11 12 11 11 12 11 11 exit('Access denied');的作用 include和require有什么区别(初级问题) 连接mysql问题 PHP语言可不可以提取视频流中每帧的帧头,在OCX中播放视频啊? 如何读出html里的<title></title>中的内容??? apache的安装问题 挥泪求php_gd_gif.dll 这条SQL语句为什么错呢? 我的收藏夹的内容怎么一下子全没了啊??????? 配制php的问题---请高手指路啊 PHP 海量数据采集该如何采集 ip统计的网站,都是用什么办法统计用户点击了链接过来的还是直接浏览器输入的地址呢?
我用print_r输出 的时候
他是这种结果
它连续输出三次结果
我就更加不明白了大牛们,快出来啊!
中文是多字节编码,一般是两个字节对应一个汉字,fgetc是一个字符一个字符读取的,所以会导致乱码问题。
可以这样:
<?php
$fp = fopen('test2.txt', 'rb');
$ch ="";
while (false !== ($char = fgetc($fp))) {
$ch.=$char;
}
echo $ch;
?>
$filen = file('test2.txt');
foreach($filen as $val){
echo nl2br($val);
}
$array=file("C:\\Users\\Administrator\\Desktop\\qi.txt");
foreach($array as $key=>$value)
{
//echo $value;
print_r($array);
}结果:
Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 ) Array ( [0] => 床前明月光 [1] => 疑是地上霜 [2] => 举头望明月 [3] => 低头思故乡 )
哪位大牛愿意加个好友,qq的
QQ:237151944
这样我就方便问了!
你这,让人情何以堪啊?
foreach中print_r($array)怎么可能不是三次呢,如果有10行数据,那就是10次。$array=file("C:\\Users\\Administrator\\Desktop\\qi.txt");
foreach($array as $value)
{
print_r($value);
}
$server="localhost";
$username="ming";
$password="qin";
if($connetID=@mysql_connect($server,$username,$password))
{
echo "数据库连接成功!";
if(mysql_select_db("db_student",$connetID))
{
echo "数据库选择成功!";
//$fopen=fopen("db.opt","r");
$squery=mysql_query("select aa,bb,cc
from dd",$connetID);
$result=mysql_fetch_array($squery);
foreach($result as$key=>$value )
{
echo $value."<br>";
}
}
else
{
echo "数据库选择失败!";
}
}
else
{
echo "数据库连接失败!";
}
我的表是:
aa bb cc
12 11 11
12 11 11
12 11 11
输出是:
12
12
11
11
11
11
foreach($result as $value){
echo $value."<br>";
}
}
正确的取法是:while($result = mysql_fetch_array($squery)){
echo $result['aa']."<br/>";
echo $result['aa']."<br/>";
echo $result['aa']."<br/>"; }
//while中的这三句可以换成你的foreach循环,也就是:while($result = mysql_fetch_array($squery)){
foreach($result as $key=>$value )
{
echo $value."<br>";
} }
$str = 'hello';
file_put_contents('./test.txt',$str);//获取百度首页的信息
$str = file_getcontents('http://www.baidu.com');
print $str
关联索引就是用类似名字的东东作为key,例如:
$arr = array('name'=>'jobs','age'=>'56');
数字索引当然就是平时遇到的数字作为键值。
$arr =array(0=>'aa',1=>'bb',3=>'cc');
while($result = mysql_fetch_array($squery)){
foreach($result as $key=>$value )
{
echo $value."<br>";
} }
里面mysql_fetch_array($squery)应该设置个参数,MYSQL_NUM或者是MYSQL_ASSOC,不然它默认的话好像会输出重复的数组元素,加一个参数就不会有重复元素的输出了!
学习数组了!!大牛们太有爱了,解决问题的感觉真是爽!!!!
while($result = mysql_fetch_array($squery)){
echo $result['aa']."<br/>";
echo $result['aa']."<br/>";
echo $result['aa']."<br/>";
}
和
while($result = mysql_fetch_array($squery)){
foreach($result as $key=>$value )
{
echo $value."<br>";
} }
的输出结果是不一样的
第一个是输出是连续输出aa的数据三次 也就是12 12 12 12 12 12 12 12 12
第二个是输出一行,也就是等价于
echo $result['aa']."<br/>";
echo $result['bb']."<br/>";
echo $result['cc']."<br/>";
那么结果就是按行输出表,结果是:12 11 11 12 11 11 12 11 11