<?php
function atrributes_str($str='',$start_index=0,&$attributes _str_res=''){
//start index must be ' ' or >'>'
$div_sign_end_tag=0;
$attributes_str_res='';
$attributes_str='';
$i=$start_index;
$end_of_attribute=$i;
$article=$str;
$size_article=strlen($str) ;
$attributes=array();
$end_of_tag=0;
if($i>=$size_article){
return $i;
}
if(!(ord($article[$i])<=32||$article[$i]=='>')){
return $i;
}
while($i<$size_article){
if($article[$i]==">"){
//$i++;
$attributes_str_res=$attributes_str;
return $i;
break;
}elseif($i+1<=$size_article&&$article[$i]=='/'&&$article[$i+1]=='>'){
$i++;
$attributes_str_res=$attributes_str.' /';
return $i;
}
if($article[$i]=='=' &&ord($article[$i-1])>32){
$j=$i-1;
$k=$j;
while($j>=0){
if((($j-1)>=0&&ord($article[$j-1])<=32)||($j-1)<=$end_of_attribute){
break;
}
$j--;
}
if(isset($attribute_name)){
unset($attribute_name);
}
if($j<$k){
$attribute_name=substr($article,$j,$k-$j+1);
}elseif($j==$k){
$attribute_name=$article[$j];
}
$i++;
while($i<$size_article&&ord($article[$i])<=32){
$i++;
}
$attribute_value='';
if($article[$i]=="'"){
$i++;
while($i<$size_article){
if($article[$i]=="'"){
$end_of_attribute=$i;
break;
}
$attribute_value.=$article[$i];
$i++;
}
}elseif($article[$i]=='"'){
$i++;
while($i<$size_article){
if($article[$i]=='"'){
$end_of_attribute=$i;
break;
}
$attribute_value.=$article[$i];
$i++;
}
}else{
while($i<$size_article&&ord($article[$i])<=32){
$i++;
}
while($i<$size_article&&ord($article[$i])>32){
if($article[$i]=='>'){
$end_of_tag=1;
break;
}elseif($i+1<=$size_article&&$article[$i]=='/'&&$article[$i+1]=='>'){
$i++;
$div_sign_end_tag=1;
$end_of_tag=1;
break;
}elseif($article[$i]=='<'){
$attribute_value.=$this->less_sign_equal;
$i++ ;
}else{
$attribute_value.=$article[$i];
$i++;
}
}
}
if(isset($attribute_name)&&$attribute_name){
$attribute_name=strtolower($attribute_name);
$attribute_name_exist=0;
for($t=0;$t<count($attributes);$t+=2){
if($attributes[$t]==$attribute_name){
$attribute_name_exist=1;
break;
}
}
if($attribute_name_exist==0){
$attributes[]=$attribute_name;
$attributes[]=$attribute_value;
$disallowd_attri=0;
$attributes_str.=' ';
for($c=0;$c<strlen($attribute_name);$C++){
if($attribute_name[$c]=='<'){
$attributes_str.='<';
}else{
$attributes_str.=$attribute_name[$c];
}
}
$attributes_str.='="'.$attribute_value.'"';
}
unset($attribute_name);
}
}
if($end_of_tag){
break;
}
$i++;
}
if($div_sign_end_tag){
$attributes_str.=' /';
}
$attributes_str_res=$attributes_str;
return $i;
}
function array_2_csv($array) {
$res = '';
foreach ($array as $item)
{
$res .= implode( ',',$item);
$res .= "<br>" ;
}
return $res ;
}
$str = file_get_contents('http://offlinecourse.iaun.ac.ir/ShowList.php?Code=99604') ;
$size = strlen($str);
$index= 0;
$csv = array() ;
$tr_index= 0;
do
{
$find_index_tr_start = strpos($str,'<tr',$index) ;
if($find_index_tr_start !==false)
{
$index = $find_index_tr_start ;
$find_index_tr_end = strpos($str,'</tr',$index) ;
do
{
$find_index_td_start = strpos($str,'<td',$index) ;
if($find_index_td_start !== false && $find_index_td_start < $find_index_tr_end)
{
$index = $find_index_td_start ;
$find_index_td_end = strpos($str,'</td',$index) ;
$index = atrributes_str($str,$index) ;
$td_data = substr($str,$find_index_td_start,$find_index_td_en d-$find_index_td_start) ;
$td_data = strip_tags($td_data) ;
$td_data = html_entity_decode($td_data,ENT_QUOTES,'utf-8') ;
$td_data = str_replace(',',"\,",$td_data) ;
$csv [$tr_index][] = $td_data ;
if($find_index_td_end !== false)
{
$index = $find_index_td_end -1 ;
}
}
}while($find_index_td_start !== false && $find_index_td_start < $find_index_tr_end) ;
$tr_index ++ ;
}
}while($find_index_tr_start !== false) ;
header("Content-Type: text/html; charset=utf-8");
$csv_data = array_2_csv($csv);
echo $csv_data;
کد رو اجرا کن بعد خروجی رو داخل یک فایل که به صورت utf-8 ذخیره شده قرار بده1.zip