PDA

View Full Version : دریافت TEXT از URL



o0_Amin_0o
شنبه 29 اردیبهشت 1386, 21:18 عصر
سلام دوستان

متاسفانه من علارغم میل و علاقم php کار نیستم!

عرضم خدمتتون که:

دارم یه برنامه ای با C# مینویسم که توی یه قسمتیش لازمه با وب سایت ارتباط برقرار کنه
ویه سری اطلاعات بفرسته به وب سایت!

برای ارسال احتیاج به یه برنامه ای دارم که یه قسمتیش لازمه یه سری کلمه از URL بگیره و اونو ذخیرش کنه تو یه فایل متنی TXT.

به عنوان مثال وقتی URL زیر اجرا میشه:
www.mysite.com/rec.php=X

اون X دریافت بشه و ذخیره بشه توی یه فایل متنی با فرمت TXT.

ممنون میشم دوستان کمکم کنن:قلب:
انشالله که بتونم جبران کنم:چشمک:

ممنون:قلب:

moohssenn
شنبه 29 اردیبهشت 1386, 23:48 عصر
شما باید با Url تان یک پارامتر بفرستید( منظورم مقداریه که میخواهید در فایل ذخیره کنید ) مثلا :


www.mysite.com/rec.php?value=hi

بعد از اون پارامتر value در فایل rec.php به صورت


$_GET[value]

دارای مقدار میشه .
حالا میرسه به اون بخش که شما مقدار ارسالی رو در فایل txt ذخیره کنید .
ابتدا باید فایل را مشخص کنید . با دستور زیر علاوه بر اینکه شما میتونید فایل رو ایجاد کنید ( اگه موجود نباشه ) میتونید اون فایلو برای نوشتن در آن آماده کنید .
توجه کنید که در سرورهای لینوکس باید فولدر مربوطه دسترسی 777 داشته باشه .


$FileName='text.txt';
$fp = fopen('text.txt', 'w+');

در بخش بعدی چک کنید که آیا امکان نوشتن برروی فایل مهیاست یا خیر . به صورت زیر :


if (!is_writable($fp)) {
echo "Cannot write to file ($FileName)";
exit;
}
else
{
echo "You Can Write This File";
}

حالا میتونید مقدار دریافتی از URL تون رو به صورت زیر در فایل مربوطه ذخیره کنید :


fputs($fp, $_GET['value']);

در پایان نیز حتما فایل باز شده رو ببندید . اونم به صورت زیر :


fclose($fp);

اما یه مورد دیگم هست که میتونید برای چند خط نوشتم برروی فایل اعمال کنید اونم که در پایان مقدار دریافت شده ( $_POST[value] ) این بخش رو اضافه کرده و بعد در فایل مربوطه بنویسید تا فایل txt شما چند خطی شود :


$_GET[value].=chr(13);


موفق باشید

ealvandi
یک شنبه 30 اردیبهشت 1386, 01:02 صبح
البته راه حلی که دوستمون گفتم برای ذخیره فایل روی host (خود وی سایت) است که شما اگه بخوای اون فایل رو رو دستگاه خودت ذخیره کنی باید فایل متنی ذخیره شده در هاست رو
دانلود کنی.

o0_Amin_0o
یک شنبه 30 اردیبهشت 1386, 08:22 صبح
شما باید با Url تان یک پارامتر بفرستید( منظورم مقداریه که میخواهید در فایل ذخیره کنید ) مثلا :


www.mysite.com/rec.php?value='hi'

بعد از اون پارامتر value در فایل rec.php به صورت


$_POST[value]

دارای مقدار میشه .
حالا میرسه به اون بخش که شما مقدار ارسالی رو در فایل txt ذخیره کنید .
ابتدا باید فایل را مشخص کنید . با دستور زیر علاوه بر اینکه شما میتونید فایل رو ایجاد کنید ( اگه موجود نباشه ) میتونید اون فایلو برای نوشتن در آن آماده کنید .
توجه کنید که در سرورهای لینوکس باید فولدر مربوطه دسترسی 777 داشته باشه .


$FileName='text.txt';
$fp = fopen("$FileName", 'w+');

در بخش بعدی چک کنید که آیا امکان نوشتن برروی فایل مهیاست یا خیر . به صورت زیر :


if (fwrite($fp, $somecontent) === FALSE) {
echo "Cannot write to file ($FileName)";
exit;
}
else
{
echo "You Can Write This File";
}

حالا میتونید مقدار دریافتی از URL تون رو به صورت زیر در فایل مربوطه ذخیره کنید :


fputs($fp,$_POST[value]);

در پایان نیز حتما فایل باز شده رو ببندید . اونم به صورت زیر :


fclose($fp);

اما یه مورد دیگم هست که میتونید برای چند خط نوشتم برروی فایل اعمال کنید اونم که در پایان مقدار دریافت شده ( $_POST[value] ) این بخش رو اضافه کرده و بعد در فایل مربوطه بنویسید تا فایل txt شما چند خطی شود :


$_POST[value].=chr(13)


موفق باشید
ممنون دوست عزیز:قلب:

منتها من همون طور که خدمتتون عرض کردم php کار نکردم!
من این کدهایی رو که شما زحمتشو کشیدین به این صورت در یک فایل با نام rec.php به این صورت ذخیره کردم:


<?php
$_POST[value]

$FileName='text.txt';
$fp = fopen("$FileName", 'w+');
if (fwrite($fp, $somecontent) === FALSE) {
echo "Cannot write to file ($FileName)";
exit;
}
else
{
echo "You Can Write This File";
}
fputs($fp,$_POST[value]);$_POST[value].=chr(13)
fclose($fp);
?>

ولی وقتی اجراش میکنم و پارامتر رو میفرستم , این ارور رو میگریم:

Parse error: parse error, unexpected T_VARIABLE in d:\easyphp1-7\www\rec.php on line 4



البته راه حلی که دوستمون گفتم برای ذخیره فایل روی host (خود وی سایت) است که شما اگه بخوای اون فایل رو رو دستگاه خودت ذخیره کنی باید فایل متنی ذخیره شده در هاست رو
دانلود کنی.
ممنون
از اون لحاظ مشکلی ندارم!
از رو خود سایت فایل TXT رو از داخل برنامه خیلی راحت میخونم!

:چشمک:

oxygenws
یک شنبه 30 اردیبهشت 1386, 08:27 صبح
این مورد هم اشتباه است که اینجا تصحیح شد:

www.mysite.com/rec.php?value=hi

oxygenws
یک شنبه 30 اردیبهشت 1386, 08:32 صبح
کد محسن زیاد اشکال داشت.


<?php
//$_POST[value]

$fp = fopen('text.txt', 'w+');
if (!is_writable($fp)) {
echo 'Cannot write to file';
exit;
}
else
{
echo 'You Can Write This File';
}
fputs($fp, $_POST['value']);
fclose($fp);
?>

moohssenn
یک شنبه 30 اردیبهشت 1386, 08:48 صبح
امید جان ممنون که اصلاح و راهنمائی کردید .
در ضمن یه اشکال مهم دیگه هم داشت که همین الام وصل شدم اصلاحش کردم . به جای POST باید از GET استفاده کنید
در پست اول اصلاح کردم , سایر مواردی را که آقای متقی اصلاح کرده بودند را نیز اصلاح نمودم

o0_Amin_0o
یک شنبه 30 اردیبهشت 1386, 13:31 عصر
oxygenws جان و moohssenn عزیز ممنون.

من الان این کد رو گذوشتم توی یه فایل به اسم rec.php


<?php
//$_GET[value]
$FileName='text.txt';
$fp = fopen('text.txt', 'w+');
if (!is_writable($fp)) {
echo "Cannot write to file ($FileName)";
exit;
}
else
{
echo "You Can Write This File";
}
fputs($fp, $_GET['value']);
fclose($fp);
?>
منتها طبق شرطی که توی کد هست وقتی اجراش میکنم و پارامترو میفرستم!
Cannot write to file چاپ میشه!!

مشکل از چیه؟!
هم تو لوکال هاست امتحانش کردم و هم توی هوست!
توی هوست هم فولدر دسترسی 777 بود!

I,Nobody
یک شنبه 30 اردیبهشت 1386, 18:31 عصر
ممکنه فایلت قبلاً ایجاد شده ولی CHMODش اجازه write نمیده. پرمیژن فایلتو هم چک کن.
ضمناً بهتره این خط رو جایگزین خط چهارم کنی :


$fp = fopen($FileName, 'w+');

o0_Amin_0o
یک شنبه 30 اردیبهشت 1386, 19:22 عصر
نه از اون لحاظ مشکلی نیست!
روی لوکال هم وقتی تست میکنم همین جوره!

فایل رو هم میذارم خودش کریت کنه!
ولی باز Cannot write to file چاپ میکنه!

I,Nobody
یک شنبه 30 اردیبهشت 1386, 21:40 عصر
<?php
//$_GET[value]
$FileName='text.txt';
if (!is_writable($FileName)) {
echo "Cannot write to file ($FileName)";
exit;
}
else
{
echo "You Can Write This File";
}
$fp = fopen('text.txt', 'a+');
fputs($fp, $_GET['value']);
fclose($fp);
?>

o0_Amin_0o
دوشنبه 31 اردیبهشت 1386, 09:48 صبح
Cannot write to file

دستور شرطی کدو برداشتم مشکل حل شد!
بدون هیچ مشکلی توی فایل مینویسه!

مشکل از دستور بود!
منم صورت مسئله رو پاک کردم:لبخند:

حالا می خوام چند خطی توی فایل چاپ بشه!
الان پشت سره هم چاپ میشه!

این تکه کدی رو که آقا محسن زحمتشو کشیدن رو باید کجای کد قرار بدم؟


$_GET[value].=chr(13)

ممنون:قلب:

I,Nobody
دوشنبه 31 اردیبهشت 1386, 13:40 عصر
$_GET[value].=chr(13).chr(10);
fputs($fp, $_GET['value']);

کد تصحیح شده ای رو که برات گذاشته بودم تست کردی، اون باید کار کنه ها

o0_Amin_0o
دوشنبه 31 اردیبهشت 1386, 18:38 عصر
بله با کد شما مشکل حل شده!
شرمنده من کد شما رو درست تست نکرده بودم صبح:خجالت:

بابت کد هم ممنون:قلب: