السلام عليكم يا شباب
لو عندي مثلا ملف txt يحتوي على 100 الف ايميل بالشكل التالي :
test1@test.com
test2@test.com
test3@test.com
واردت ان اقوم بصفنع سكربت بيقوم بتقسم هذا الفايل الى عدة فايلات يحتوي كل منها على 1000 ايميل فقط
ما هي اسرع وأسلم طريقه ؟
السلام عليكم يا شباب
لو عندي مثلا ملف txt يحتوي على 100 الف ايميل بالشكل التالي :
test1@test.com
test2@test.com
test3@test.com
واردت ان اقوم بصفنع سكربت بيقوم بتقسم هذا الفايل الى عدة فايلات يحتوي كل منها على 1000 ايميل فقط
ما هي اسرع وأسلم طريقه ؟
استخدم دالة explode بفصل الايميلات ومن ثم foreach وداخلها while ال while داخلها انشاء الملف وتكرارها 1000
سيد exchangeboss
شكرا على مرورك
بس لما بستخدم دالة explode
ايش رح يكون الفاصل بين كل ايميل والثاني ؟؟
"\n"
بعد اذن صاحب الموضوع
طيب لو انا عايز قائمة الايميلات دى فى سطر واحد كلها استخدم ايه ؟
__________________
- حسابى على فيسبوك --> هنا
- لطلبات تعريب السكربتات والقوالب & التعديلات البرمجية ---> MtRp@live.com
تفضل اخي هذه دلة عملتها لك
كود PHP:<?php
/**
* @author [Asaher.com]
* @copyright 2009
*/
function StoreEmail($filetxt,$numStore,$Folder){
$var = fopen($filetxt, "r");
$lines = fread($var, filesize($filetxt));
$numEmail = ceil(count(explode("\n",$lines)));
$partEmail = explode("\n",$lines);
$numberPart=ceil($numEmail/$numStore);//
$startLengthNumber=0;
$endLengthNumber=$numStore-1;//
$k=0;
for($x=0;$x<ceil($numberPart);$x++)
{
$tempEmail="";
for ($e=0;$e<count($partEmail);$e++)
if($e>=$startLengthNumber && $e<=$endLengthNumber)
$tempEmail .= $partEmail[$e]."\n";
$startLengthNumber=$startLengthNumber+$numStore;//
$endLengthNumber=$endLengthNumber+$numStore;//
$k++;
//echo $tempEmail."<br>";
$handle = fopen($Folder.$k.".txt", "w");
fwrite($handle, $tempEmail);
fclose($handle);
}
}
// طريقة الاستخدام
$filetxt = "text.txt"; // الملف الذي به الايمالات
StoreEmail ($filetxt,1000,"temp/");
//or
//StoreEmail ($filetxt,1000,"");
?>
لو في سطر واحد مش ممكن طبعاً بدون فواصل .. يعني افصل بفاصلة أو فاصلة منقوطة أو داش أو فراغ أو أي شي !
اتفضل اخي الكريم
ارجو منك الدعاءةكود PHP:<?php
/**
* ##############################################
* ##برمجة محمدهلال ##
* ##جميع الحقوق محفوظة لي محمدهلال ##
* ## mohamedhelal ##
* ##all rights to mohamedhelal ##
* ##email:mohamed_helal123456@hotmail.com ##
* ##############################################
*/
function Read_File($file,$N_Email=5,$do="\n")
{
if(!file_exists($file))return false;
$data=file_get_contents($file);
$exp=explode("\n",$data);
$all_num=ceil(count($exp)/$N_Email);
for($fi=1;$fi<=$all_num;$fi++)
{
$ne="email_".$fi.".txt";
if(!file_exists($ne))
{
$fp=@fopen($ne,"w");
}
$i=1;
foreach($exp as $emails)
{
$str=$emails.$do;
@fwrite($fp,$str);
if($i==$N_Email)
{
@fclose($fp);
$i=0;
}
$i++;
}
}
}
// طريقة الاستخدام
Read_File("emails.txt",10,"\n");
?>
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
ما انا كنت بعد ما احطهم فى سطر واحد كن هدخل على محرر notapad++ واعمل replace لكل نهاية ايميل ب .com الى .com, وبكده يكون كل ايميل مفصول عن الاخر بفاصلة
بس الواضح ان فى طريقة اسهل
هل ينفع ابدل "\n"ب "," وبكده كلهم يتحطوا فى سطر واحد ويتفصلو بفاصلة اتوماتيك ؟
__________________
- حسابى على فيسبوك --> هنا
- لطلبات تعريب السكربتات والقوالب & التعديلات البرمجية ---> MtRp@live.com
قوم بستخدام الداله وغير متغير do بالقيمة التي تريد تدمج بها الايميلات
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
تمام
الف شكر لك
__________________
- حسابى على فيسبوك --> هنا
- لطلبات تعريب السكربتات والقوالب & التعديلات البرمجية ---> MtRp@live.com
مشكورين يا شباب اشتغلت الداله 100 %
ما قصرتو
الله يعطيكم العافيه
بس كيف لو بدي اخليها تبعدأ تعد ارقام الملفات من عدد معين
مثلا انا عندي مسبقا 10 ملفات فيها ايميلات
واريدها ان تبدا من 11
كيف ؟
عدلت لك اسماء الملفات حيث تبدأ من 11.txt
كود PHP:<?php
/**
* @author [Asaher.com]
* @copyright 2009
*/
function StoreEmail($filetxt,$numStore,$Folder){
$var = fopen($filetxt, "r");
$lines = fread($var, filesize($filetxt));
$numEmail = ceil(count(explode("\n",$lines)));
$partEmail = explode("\n",$lines);
$numberPart=ceil($numEmail/$numStore);//
$startLengthNumber=0;
$endLengthNumber=$numStore-1;//
$k=10;
for($x=0;$x<ceil($numberPart);$x++)
{
$tempEmail="";
for ($e=0;$e<count($partEmail);$e++)
if($e>=$startLengthNumber && $e<=$endLengthNumber)
$tempEmail .= $partEmail[$e]."\n";
$startLengthNumber=$startLengthNumber+$numStore;//
$endLengthNumber=$endLengthNumber+$numStore;//
$k++;
//echo $tempEmail."<br>";
$handle = fopen($Folder.$k.".txt", "w");
fwrite($handle, $tempEmail);
fclose($handle);
}
}
// طريقة الاستخدام
$filetxt = "text.txt"; // الملف الذي به الايمالات
StoreEmail ($filetxt,1000,"temp/");
//or
//StoreEmail ($filetxt,1000,"");
?>
مشكور
الله يعطيك العافيه