Ben PHP komut dosyası, bir XML dosyası yükledi sonra PHP komut dosyası (örneğin, bir XML dosyası yüklenir porsiyonlarda dosyası kesmek için bir Bash komut dosyası çağırır .... bir Bash komut dosyasını çağıran bir PHP komut dosyası ile bazı sorunlar var 30000 hatlarının, yani en Bash komut 10000 hatlarının parçalar halinde kesilmiş dosyasını, bu nedenle) her biri 10,000 3 içerik olacaktır
Dosya yüklenirse, Bash script hatları kesilmiş, ancak Bash script PHP komut döndüğünde, PHP komut dosyası ölür, & Ben neden ... Ben başka bir sunucu komut test bilmiyorum ve ben ne can, ne yapacağımı bilmiyorum, bilmiyorum, belki bu da bir işlemci sorun, bir bellek sorunu olduğunu inanmıyorum ... çalışıyor yapmam?? (Im Bash komut aramak için PHP fonksiyon shell_exec kullanarak)
XML dosyası 8000'den fazla satır varsa hata sadece olur, ancak dosya az sonra 8.000 varsa her şey (bu her satırı içeren harf dizeleri veri miktarı, bağlıdır, görecelidir) ok
what can you suggest me??? (sorry for my bad english, I have to practice a lot xD) I leave the code here
PHP komut dosyası (sonra sonunda,?>, Html ve javascript kodu var, ama sadece javascript kodu ... temelde html dosya yüklemek için sadece, görünmez)
" . date('c') . ": $str
";
$file = fopen("uploadxmltest.debug.txt","a");
fwrite($file,date('c') . ": $str\n");
fclose($file);
}
try{
if(is_uploaded_file($_FILES['tfile']['tmp_name'])){
debug("step 1: the file was uploaded");
$norg=date('y-m-d')."_".md5(microtime());
$nfle="testfiles/$norg.xml";
$ndir="testfiles/$norg";
$ndir2="testfiles/$norg";
if(move_uploaded_file($_FILES['tfile']['tmp_name'],"$nfle")){
debug("step 2: the file was moved to the directory");
debug("memory_get_usage(): " . memory_get_usage());
debug("memory_get_usage(true): " . memory_get_usage(true));
debug("memory_get_peak_usage(): " . memory_get_peak_usage());
debug("memory_get_peak_usage(true): " . memory_get_peak_usage(true));
$shll=shell_exec("./crm_cutfile_v2.sh \"$nfle\" \"$ndir\" \"$norg\" ");
debug("result: $shll");
debug("memory_get_usage(): " . memory_get_usage());
debug("memory_get_usage(true): " . memory_get_usage(true));
debug("memory_get_peak_usage(): " . memory_get_peak_usage());
debug("memory_get_peak_usage(true): " . memory_get_peak_usage(true));
debug("step 3: the file was cutted.
END");
}
else{
debug("ERROR: I didnt move the file");
exit();
}
}
else{
debug("ERROR: I didnt upload the file");
//exit();
}
}
catch(Exception $e){
debug("Exception: " . $e->getMessage());
exit();
}
?>
Test
function uploadFile(){
alert("start");
if(document.test.tfile.value==""){
alert("First you have to upload a file");
}
else{
document.test.submit();
}
}
AWK ile betik
#!/bin/bash
#For single messages (one message per contact)
function cutfile(){
lines=$( cat "$1" | awk 'END {print NR}' )
fline="$4";
if [ -d "$2" ]; then
exsts=1
else
mkdir "$2"
fi
cp "$1" "$2/datasource.xml"
cd "$2"
i=1
contfile=1
while [ $i -le $lines ]
do
currentline=$( cat "datasource.xml" | awk -v fl=$i 'NR==fl {print $0}' )
#creates first file
if [ $i -eq 1 ]; then
echo "$fline" >>"$3_1.txt"
else
#creates the rest of files when there are more than 10,000 contacts
rsd=$(( ( $i - 2 ) % 10000 ))
if [ $rsd -eq 0 ]; then
echo "" >>"$3_$contfile.txt"
contfile=$(( $contfile + 1 ))
echo "$fline" >>"$3_$contfile.txt"
fi
fi
echo "$currentline" >>"$3_$contfile.txt"
i=$(( $i + 1 ))
done
echo "" >>"$3_$contfile.txt"
return 1
}
#For multiple messages (one message for all contacts)
function cutfile_multi(){
return 1
}
cutfile "$1" "$2" "$3" "$4"
echo 1
teşekkürler!! = D