کانال بازی سازی تلگرام
php :: آموزش ساخت بازی اندروید+پکیج های تخصصی

آموزش ساخت بازی اندروید+پکیج های تخصصی

هرگز دل من ز علم محروم نشد
کم ماند ز اسرار که معلوم نشد
هفتاد و دو سال فکر کردم شب و روز
معلومم شد که هیچ معلوم نشد
---
تمام اعمالی که انجام می دهیم، حتی اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید. زلزال ۷
او کسی است که (روح) شما را در شب (به هنگام خواب) میگیرد; و از آنچه در روز کرده‏اید، با خبر است; سپس در روز شما را (از خواب) برمیانگیزد; و (این وضع همچنان ادامه مییابد) تا سرآمد معینی فرا رسد; سپس بازگشت شما به سوی اوست; و سپس شما را از آنچه عمل میکردید، با خبر میسازد. انعام ۶۰
دلها به یاد خدا آرام میگیرد. رعد آیه ۲۷
بدانید زندگی دنیا تنها بازی و سرگرمی، و تجمل پرستی و تفاخر در میان شما و افزون طلبی در اموال و فرزندان است . حدید آیه ۲۰
آن خدایی که آدمی را از خون بسته (که تحول نطفه است) بیافرید.
بخوان و (بدان که) پروردگار تو کریم‌ترین کریمان عالم است.
آن خدایی که بشر را علم نوشتن به قلم آموخت.
به آدمی آنچه را که نمی‌دانست تعلیم داد.
راستی که انسان سرکش و مغرور می‌شود.
چون که خود را در غنا و دارایی ببیند. علق ۲- ۷
این زندگانی چند روزه دنیا افسوس و بازیچه‌ای بیش نیست، عنکبوت ۶۴
در روی زمین به تکبر راه مرو که نمی توانی زمین را بشکافی و هرگز قامتت به بلندای کوهها نمی رسد. اسراء ۳۷
در آنچه خداوند بر تو بخشیده است، سرای آخرت را بجوی و سهم خود را از دنیا فراموش مکن و همانگونه که خدا به تو نیکی کرده است نیکی کن و هرگز فساد در زمین منما که خدا مفسدان را دوست ندارد. قصص ۷۷
و هرگاه نعمت و رحمتی به انسان بچشانیم و سپس آن را از او برگیریم او مأیوس و نومید میشود و به کفران و ناسپاسی بر میخیزد. هود ۹
بندگان مرا آگاه ساز که من بسیار آمرزنده و مهربانم. حجر ۴۹
از رحمت خدا نا امید مباشید که جز کافر هیچ کس از رحمت خدا نا امید نیست. یوسف ۸۷
پس به یاد من باشید تا به یاد شما باشم. بقره ۱۵۲
زندگانی دنیا چیزی جز متاع فریبنده نیست . آل عمران ۱۸۵
از آنچه به شما روزی داده ایم پیش از آنکه روزی فرا رسد که نه معامله ای وجود دارد و نه دوستی و شفاعت ، انفاق کنید. بقره ٢۴۵
بسا چیزی را ناخوش داشته باشید که آن به سود شماست و بسا چیزی را دوست داشته باشید که به زیان شماست، و خدا میداند و شما نمیدانید. بقره ۲۱۶
ما آیات (خود) را برای شما بیان کردیم شاید اندیشه کنید...حدید ۱۷

پیوندهای روزانه
پیوندها

۲۷ مطلب با موضوع «php» ثبت شده است

gameover.blog.ir

برای اینکار کد زیر رو به فایل .htacess یا  فایل  httpd.conf اضافه کنید.

Addtype application/x-httpd-php .htm .html
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ مهر ۹۵ ، ۰۵:۴۰
مدیرکل

gameover.blog.ir

<?php
// PHP permanent URL redirection
header("Location: http://www.domain.com/new-page.php", true, 301);
exit();
?>


موتورهای جستجو(search engines) از response status code  یا کد پاسخ 301 برای انتقال پیج رنک از URL قدیمی به url ارجاع داده شده استفاده می کنند.
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ مهر ۹۵ ، ۰۵:۳۸
مدیرکل

gameover.blog.ir

چون اپن سورس هست زمپ،پس بهتره از سرور اصلی آدرس بدم نه هیچ سرور دیگه ای:

https://www.apachefriends.org/download.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ شهریور ۹۵ ، ۲۰:۴۵
مدیرکل
gameover.blog.ir
http://s8.picofile.com/file/8275581700/phpBookKArbordiGameover.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ مرداد ۹۵ ، ۰۸:۲۵
مدیرکل

gameover.blog.ir

بعضی وقتا بدون html می خوایم از داخل خود php یک فرم بسازیم و ارسال کنیم به یک صفحه ی وب یا یک url.

در مثال زیر فرض شد فایل های ali.jpg و reza.jpg در مسیر دایرکتوری home/user روی هاست فعلی وجود دارند و اونها رو در متغیرهای file1 و file2 ریخیتم و سپس به url دلخواه ارسال کردیم و همینطور متغیرهای esm و php_master رو با مقادیری دلخواه.


روش POST:

<?php
$url = 'http://mySite.com/...';
$_POST = array('esm' => 'alireza', 'php_master' => true);
// ارسال یک فایل مشابه ورودی فایل در فرم با نام دلخواه شما
$POST['file1'] = '@/home/user/ali.jpg';
$POST['file2'] = '@/home/user/reza.jpg';

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $_POST);
curl_exec($handle);
?>

روش GET(ارسال داده ها با طول کمتر از طریق url):

<?php
$url = 'http://mySite.com/...';
$_GET = array('name' => 'alireza', 'php_master' => true);

$url = $url . '?' . http_build_query($_GET);

$handle = curl_init($url);
curl_exec($handle);
?>

در روش GET ، امکان ارسال فایل وجود ندارد چون طول پارامترهای GET محدود به 4096 بایت است.
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ مرداد ۹۵ ، ۰۴:۴۷
مدیرکل

gameover.blog.ir

Fatal error: Call to undefined function curl_init() in C:\xampp

\htdocs\test\index.php on line 5

برای رفع خطا

فایل C:\xampp\php\php.ini رو باز کنید.

ctrl+F بزنید
extension=php_curl.dll رو سرچ کنید.

سمی کالن ( ; ) رو از اولش بردارید .

آپاچی رو reStart کنید.

----
منبع :
http://www.hotscripts.com/forums/php/26167-fatal-error-call-undefined-function-curl_init.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۵ ، ۰۷:۰۳
مدیرکل

gameover.blog.ir

نمایش رتبه ی سایت (برای مثال : پرومیکرز ) رو می خوام با استفاده از php بهتون یاد بدم.
ابتدا فایلی به اسم rank.php بسازید و کد زیر رو بریزید توش:

http://s5.picofile.com/file/8146479292/upload.zip.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۵ ، ۰۷:۰۰
مدیرکل

gameover.blog.ir

فکر کنم برای اینکه زمان سایت روی تهران تنظیم بشه باید بخش timeZone از server رو Iran-Tehran تنظیم کنید. چون ممکنه سرور روی مثلا کانادا باشه اما بازدید کننده ها بیشترشون از ایران هستن و زمان محلی تهران رو نیاز دارند.
البته میشه اسکریپتی نوشت که از روی یک time server بیاد ساعت جهانی و تهران رو بخونه و با PHP و AJAX و innerHTML و ی سری ریز کدهای دیگه اونو جاساز کنیم توی بخشی از سایت که می خوایم.
مثلا من اسکریپتی ساختم که زمان رو از داخل این page جدا می کنه :

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۵ ، ۰۶:۵۰
مدیرکل

gameover.blog.ir

سوال :

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

پاسخ :

بعد از ساخت دیتابیس می تونید از طریق mysql_query() اطلاعات جدید تو دیتابیس اینسرت کنید !

اما قبل از استفاده از کوئری کد

کد PHP:
mysql_query("SET NAMES 'UTF8'"); 
را بذارید تا فارسی ذخیره بشه !
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۵ ، ۰۶:۴۸
مدیرکل

gameover.blog.ir

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ فروردين ۹۵ ، ۱۱:۳۸
مدیرکل

gameover.blog.ir

این سورس و فلوچارت رو برای سوال یکی از دوستان ساختم. میذارم شاید به کار دیگران هم بیاد:
http://s5.picofile.com/file/8155551050/dec2hex.zip.html
http://s5.picofile.com/file/8155551092/dec2hex.png

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ فروردين ۹۵ ، ۱۱:۳۷
مدیرکل

gameover.blog.ir

مثال :
در مسیر C:\xampp\htdocs\ini فایلی به اسم sample.ini با محتوای زیر ایجاد کن :

کد:
[Cars]
var1 = 1
var2 = 2
حالا فایلی به نام index.php با محتوای زیر ایجاد کن :
کد PHP:
<?php
// Parse without sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>
حالا با مرورگر fireFox اینو اجرا بگیر :
http://localhost/ini/
خودش index.php رو اجرا می کنه و خروجی میشه چیزی شبیه این :
کد:
Array ( [var1] => 1 [var2] => 2 ) Array ( [Cars] => Array ( [var1] => 1 [var2] => 2 ) )
منبع :
http://www.php.net/manual/en/function.pa...i-file.php
اگه خونه ی اول آرایه رو هم بخوای تکی بدست بیاری :
کد PHP:
echo($ini_array["var1"]); 
خروجی :
کد:
1
۰ نظر موافقین ۰ مخالفین ۰ ۱۹ فروردين ۹۵ ، ۱۱:۳۶
مدیرکل
منبع :gameover.blog.ir

نکته : گروه ما یونیتی رو توضیه می کنه اما چون مبتدیان گیم میکر کار می کنن بعضی اوقات پاسخ گوی سوالات اونا هستیم.
(البته گیم میکر استادیو هم هنوز برای بازی سازی جایگاهی داره به شرطی که توی کدنویسی لمسی و ... بیشتر تحقق کنید)
با استفاده از این آموزش می تونید با php ارتباط بگیرید:
http://promakers.ir/showthread.php?tid=10070

<?php
//get.php
//Author:Sajjad3011
if (isset($_POST["x"]) && isset($_POST["y"]  )
{
$x=$_POST["x"];
$y=$_POST["y"];
}
   $dbhost = 'اسم هاست مای اس کیو ال';
   $dbuser = 'نام کاربری که برای دیتابیس نسبت دادیم روی هاست';
   $dbpass = 'رمز';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   

   if(! $conn )
   {
      die('Could not connect to host : ' . mysql_error());
   }
   
   $sql = 'INSERT INTO tableName '.
      '(x,y) '.
      'VALUES ( $x, $y )';
      
   mysql_select_db('test_db');
   $result= mysql_query( $sql, $conn );
   
   if(! $result )
   {
      die('Could not enter data: ' . mysql_error());
   }
   
   echo "Entered data successfully\n";
   
   mysql_close($conn);
?>

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ آذر ۹۴ ، ۲۳:۵۵
مدیرکل
منبع :gameover.blog.ir
<?php
// example of how to use basic selector to retrieve HTML contents
include('../simple_html_dom.php');

// get DOM from URL or file
$html = file_get_html('http://example.com/#1:7');

// find all link
foreach($html->find('a') as $e) 
    echo $e->href . '<br>';

// find all image
foreach($html->find('img') as $e)
    echo $e->src . '<br>';

// find all image with full tag
foreach($html->find('img') as $e)
    echo $e->outertext . '<br>';

// find all div tags with id=gbar
foreach($html->find('div#content') as $e)
    echo $e->innertext . '<br>';

// find all span tags with class=gb1
foreach($html->find('span.gb1') as $e)
    echo $e->outertext . '<br>';

// find all td tags with attribite align=center
foreach($html->find('td[align=center]') as $e)
    echo $e->innertext . '<br>';

// extract text from table
echo $html->find('td[align="center"]', 1)->plaintext.'<br><hr>';

// extract text from HTML
echo $html->plaintext;
?>

منبع اصلی:
http://stackoverflow.com/questions/26966919/how-to-get-ajax-response-text-from-div-using-php-domdocument
۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آذر ۹۴ ، ۰۹:۳۱
مدیرکل
منبع:gameover.blog.ir
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>';

منبع اصلی:
http://simplehtmldom.sourceforge.net/
۰ نظر موافقین ۰ مخالفین ۰ ۱۳ آذر ۹۴ ، ۱۸:۲۰
مدیرکل

منبع :gameover.blog.ir

برای اینکار ابتدا یک دوربین توی صحنه داریم.
یک فایل تصویری به اسم screenShot.png در مسیر جاری داریم.
یک اسکریپت csharp برای ایجاد دکمه ی آپلود می سازیم به اسم test.cs می سازیم و ربطش می دیم به دوربین:
[تصویر: unity_design_script_upload.jpg]
سورس اسکریپت سیشارپ test.cs :

//test.cs
using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {
    
    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        
    }
    
    void OnGUI()
    {
        GUI.Label(new Rect(100, 0, 500, 20), Application.dataPath);
        if (GUI.Button(new Rect(100, 100, 150, 20), "Upload"))
        {
            UploadFile("http://yourSiteName.pergig.ir/upload/upload_file.php");
        }
    }
    
    IEnumerator UploadFileCo(string uploadURL)
    {
        print ("file://" + Application.dataPath + "/screenShot.png");
        WWW localFile = new WWW("file://" + Application.dataPath + "/screenShot.png");
        yield return localFile;
        WWWForm postForm = new WWWForm();
        postForm.AddBinaryData("file", localFile.bytes, "screenShot.png", "image/png");
        WWW upload = new WWW(uploadURL, postForm);
        yield return upload;
        if (upload.error == null)
        {
            Debug.Log(upload.text);
        }
        else
        {
            Debug.Log("Error during upload: " + upload.error);
        }
    }
    
    void UploadFile(string uploadURL)
    {
        StartCoroutine(UploadFileCo(uploadURL));
    }
}

کد بالا رو ذخیره کنید و بکشید روی دوربین رها کنید.

به جای "http://yourSiteName.pergig.ir/upload/upload_file.php" آدرس فایل upload_file.php رو بدید.
اینم سورس upload_file.php که باید روی یک هاست php بذاریدش:

//upload_file.php
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts)) {
  if ($_FILES["file"]["error"] > 0) {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
  } else {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
    if (file_exists("upload/" . $_FILES["file"]["name"])) {
      echo $_FILES["file"]["name"] . " already exists. ";
    } else {
      move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);//move uploaded file into "upload" folder in current dir
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
    }
  }
} else {
  echo "Invalid file";
}
?>

نکته: کد

<?php
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
?>

باعث میشه فایل یا عکس آپلود شده move بشه به پوشه ی دیگه ای به نام upload که روی سایت باید در مسیر upload_file.php ایجادش کرده باشید(علت این کار اینه که هر فایلی بعد از آپلود ابتدا توی یه پوشه ی موقتی روی سایت ذخیره میشه و حتما باید از تو پوشه ی temporary یا پوشه ی فایل های موقت ، انتقالش بدیم به جای دیگه وگرنه توسط موتورهای امنیتی سایت به طور خودکار حذف میشه. علتش هم سیاست های هر سایت هست که از درک این بحث خارجه)
[تصویر: upload_file.jpg]

شما می تونید روی pergig.ir یه هاست رایگان php بگیرید و توی پوشه ی htdocs یه پوشه به اسم upload بسازید و فایل upload_file.php و همچنین یک پوشه ی upload رو داخلش ایجاد کنید و آدرس رو به اسکریپت یونیتی بدید.
---
هرکی مشکل داشت بپرسه ازم
اینم یک شات از صحنه ی بعد از آپلود :
[تصویر: after_upload.jpg]
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ آبان ۹۴ ، ۲۲:۳۹
مدیرکل

منبع:gameover.blog.ir
کد سیشارپ:
public class PostURL : MonoBehaviour {
 
     void Start () {
         string url = "http://example.com/script.php";
         WWWForm form = new WWWForm();
         form.AddField("var1", "value1");
         form.AddField("var2", "value2");
         WWW www = new WWW(url, form);
         StartCoroutine(WaitForRequest(www));
     }
     IEnumerator WaitForRequest(WWW www)
     {
         yield return www
         // check for errors
         if (www.error == null)
         {
             Debug.Log("WWW Ok!: " + www.data);
         } else {
             Debug.Log("WWW Error: "+ www.error);
         }    
     }

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ آبان ۹۴ ، ۰۰:۴۰
مدیرکل

منبع:gameover.blog.ir

public class PostURL : MonoBehaviour {

     void Start () {
         string url = "http://example.com/script.php";
         WWWForm form = new WWWForm();
         form.AddField("var1", "value1");
         form.AddField("var2", "value2");
         WWW www = new WWW(url, form);
         StartCoroutine(WaitForRequest(www));
     }
     IEnumerator WaitForRequest(WWW www)
     {
         yield return www
         // check for errors
         if (www.error == null)
         {
             Debug.Log("WWW Ok!: " + www.data);
         } else {
             Debug.Log("WWW Error: "+ www.error);
         }    
     }

منبع خارجی:

http://answers.unity3d.com/questions/11021/how-can-i-send-and-receive-data-to-and-from-a-url.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ مهر ۹۴ ، ۱۹:۳۸
مدیرکل

منبع:gameover.blog.ir

کد زیر،محتوای فایل testFile.txt رو می خونه و نمایش می ده و اینکار رو تا پایان خواندن همه ی سطرهای فایل ادامه میده.

<?php 
header('Content-type: text/html; charset=utf-8'); 
//==============
$myFile="testFile.txt";
$fh=fopen($myFile, 'r') or die("");//read file
while(! feof($fh))
  {
  echo fgets($fh). "<br />";
  }

fclose($fh);
//==============
?>
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ مهر ۹۴ ، ۱۸:۳۵
مدیرکل

منبع:gameover.blog.ir

<?php 
header('Content-type: text/html; charset=utf-8'); 
$stringIP=$_SERVER['REMOTE_ADDR'];
//==============
$myFile="testFile.txt";
$fh=fopen($myFile, 'a') or die("can't open file");//'a' : append
fputs($fh,$stringIP ."\r\n");
fclose($fh);
//==============
?>
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ مهر ۹۴ ، ۱۸:۳۱
مدیرکل
منبع : gameover.blog.ir
این کد سطرهای یک فایل رو که شامل لینک های وب هست از فایل 1.txt می خونه و به صورت لینک در تگ a href نشون میده :

<?php
//Link saz
//Author:sajjad3011
$file = fopen("1.txt","r");

while(! feof($file))
  {
 $myStr= fgets($file);
  echo "<a href='" . $myStr . "' >" .   $myStr . "</a><br />";
  }

fclose($file);
?>


۰ نظر موافقین ۰ مخالفین ۰ ۱۲ شهریور ۹۴ ، ۰۳:۵۱
مدیرکل
منبع :gameover.blog.ir
کاری کنید که هر 1 ثانیه مرورگر رفرش بشه یا مثلا زمان رو با html و php نشون بدید:

<head>
<meta http-equiv="refresh" content="5">
</head>
<?php

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

<?php echo date('h:i:s A');?>


۰ نظر موافقین ۰ مخالفین ۰ ۲۲ مرداد ۹۴ ، ۲۱:۴۰
مدیرکل
<?php
//Author:Sajjad3011 $base_name = rand() . rand() . rand(); // todlide adad tasadofi $extension = '.jpg'; // Change as necessary $file_name = $base_name . $extension; $i = 0; while (file_exists($file_name)) {     $file_name = $base_name . $i++ . $extension; } ?>
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۱۷:۵۶
مدیرکل

سوال :

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

پاسخ :

بعد از ساخت دیتابیس می تونید از طریق mysql_query() اطلاعات جدید تو دیتابیس اینسرت کنید !

اما قبل از استفاده از کوئری کد

mysql_query("SET NAMES 'UTF8'");

را بذارید  تا فارسی ذخیره بشه !

--

تنظیم پشتیبانی از زبان فارسی یا utf در فایل های PHP :

نکته: حتما فایل های خودتونو به فرمت utf ذخیره کنید.

ثانیا اول فایل های PHP تون کد زیر رو وارد کنید :

<?php header('Content-type: text/html; charset=utf-8');  ?>

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ ارديبهشت ۹۴ ، ۰۲:۴۵
مدیرکل
آموزش ایجاد فایل ini در php :


<?php
//@URL http://stackoverflow.com/questions/1268378/create-ini-file-write-values-in-php?answertab=votes#answer-1268642
function write_ini_file($assoc_arr, $path, $has_sections = FALSE)
{
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key => $elem) {
$content .= "[" . $key . "]\n";
foreach ($elem as $key2 => $elem2) {
if (is_array($elem2)) {
for ($i = 0; $i < count($elem2); $i++) {
$content .= $key2 . "[] = \"" . $elem2[$i] . "\"\n";
}
} else if ($elem2 == "") $content .= $key2 . " = \n";
else $content .= $key2 . " = \"" . $elem2 . "\"\n";
}
}
} else {
foreach ($assoc_arr as $key => $elem) {
if (is_array($elem)) {
for ($i = 0; $i < count($elem); $i++) {
$content .= $key . "[] = \"" . $elem[$i] . "\"\n";
}
} else if ($elem == "") $content .= $key . " = \n";
else $content .= $key . " = \"" . $elem . "\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
// write your array now in a .ini file
$sampleData = array(
'first' => array(
'first-1' => 1,
'first-2' => 2,
'first-3' => 3,
'first-4' => 4,
'first-5' => 5,
),
'second' => array(
'second-1' => 1,
'second-2' => 2,
'second-3' => 3,
'second-4' => 4,
'second-5' => 5,
));
write_ini_file($sampleData, './data.ini', true);


خواند فایل ini در php :
آموزش رو با مثال دنبال کنید :
در مسیر C:\xampp\htdocs\ini فایلی به اسم sample.ini با محتوای زیر ایجاد کن :

[Cars]
var1 = 1
var2 = 2

حالا فایلی به نام index.php با محتوای زیر ایجاد کن :


<?php
// Parse without sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>


حالا با مرورگر fireFox اینو اجرا بگیر :
http://localhost/ini/
خودش index.php رو اجرا می کنه و خروجی میشه چیزی شبیه این :

Array ( [var1] => 1 [var2] => 2 ) Array ( [Cars] => Array ( [var1] => 1 [var2] => 2 ) )

منبع :

اگه خونه ی اول آرایه رو هم بخوای تکی بدست بیاری :
echo($ini_array["var1"]);

خروجی: 1


-------
اطلاعات بیشتر بر گرفته از پرومیکرز:

تجزیه یک فایل ini



parse_ini_file

parse_ini_file — تجزیه یک فایل ini

شرح
کد PHP:
array parse_ini_file string $filename [, bool $process_sections false [, int $scanner_mode INI_SCANNER_NORMAL ]] ) 
این تابع همه ی اطلاعات یک فایل ini را به صورت یک آرایه ی بر می گرداند .

پارامتر ها
filename
فایل ini ای که می خواهید آنرا تجزیه و تحلیل کنید .
process_sections
اگر مقدار این پارامتر را برابر true قرار دهید یک آرایه ی چند بعدی بر می گرداند با نام section ها ( بخش هایی که در [] هستند ) و setting ( داده ها ) مقدار این پارامتر به صورت پیش فرض برابر false است .

scanner_mode
دو مقدار INI_SCANNER_NORMAL و INI_SCANNER_RAW را می تواند داشته باشد .
INI_SCANNER_NORMAL مقدار پیش فرض است

اگر INI_SCANNER_RAW انتخاب شود مقدار ها( ارزش های متغیر ها ) تجزیه نخواهند شد .

برگرداندن مقدار ها
یک آرایه ی چند بعدی را در صورت موفقیت بر می گرداند اگر موفق نباشد مقدار false بر گردانده می شود .


یک مثال

فایل زیر را با نام sample.ini در نظر بگیرید :

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"
در فایل php زیر می خواهیم فایل را تجزیه کنیم:

<?php

define
('BIRD''Dodo bird');

// Parse without sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>


*** define تا اونجایی که من می دونم یک ثابت ایجاد می کنه الان ما یک ثابت ایجاد کردیم با اسم BIRD و مقدارش رو برابر Dodo bird قرار دادیم
ثابت ها بر خلاف متغیر های برای فراخونیشون نیاز به $ نیست و فقط اسمش رو بنویسیم فراخوانی می شن
برای مثال
echo BIRD;

خروجی این کد چیزی شبیه به این میشه:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

        )

)

***همونطوری که می بینید مقدار BIRD به جای Dodo bird هست

منبع اصلی :
http://php.net/manual/en/function.parse-ini-file.php

http://www.promakers.ir/showthread.php?tid=8956&pid=98665#pid98665
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ فروردين ۹۴ ، ۱۱:۲۶
مدیرکل

http://s5.picofile.com/file/8147420068/emtiaz_sajjad3011.jpg

این سورس واسه ثبت امتیاز هست ولی فقط ثبت می کنه و جواب برگشتی رو نمی تونیم بخونیم
همه چی واضحه(کسی که میخواد اجرا بگیره و سیستم های پیشرفته تری بسازه حتما باید php بلد باشه)

هم روی And Roidجواب میده هم ویندوز هم iphone OS و هم ... (از کجا معلوم : از اونجا معلوم که من می گم)


من اسم متغیر ها رو طوری گذاشتم که بهش می گم کد تمیز یا clean code .
clean code ، یعنی کدی که برنامه نویس یا اسکریپت نویس بسازه تا نه فقط خودش،بلکه همه به سادگی منظورشو درک کنند حتی پس از سالیان زیاد.happy
--
چیز خاصی نداره.
فقط باید اینو بدنید تابع http_post_string دو مقدار می گیره. یک url و یک string .
url آدرس get.php هست که آنلاین روی سایت هست و پارامترها رو میخوایم بهش ارسال کنیم.
ما به دو صورت می تونیم داده ها رو بفرستیم به get.php .
یکی روش get هست که انتخای url یک علامت سوال می ذاریم و بعدش اسم متغیرها رو با مقدار میاریم و با & از هم جدا می کنیم که من چون فقط v1 رو دارم از url با متد get می فرستم نیازی به & نبود.
روش دوم روش post هست که قوی تر هم هست و متغیرها رو میریزیم توی یه رشته مثل "v2=145&v3=45" .
(اگه می خواید روش ارسال get و post رو درک کنید باید ساخت فرم توی html رو sumbit اونو بلد باشید که اونو تو بخش html بپرسید )

اسم این متغیرها هم دلخواه بود که من v1 و v2 و v3 دادم.

فقط روی سایت و توی get.php باید یادمون باشه هرچیز رو اینجا با متد get ارسال کردیم با دستور $_GET می گیریم و چیزی که با متد post فرستادیم با دستور $_POST می گیریم مثال

کد:
$_POST["v2"]
یا
کد:
$_GET["v1"]


اون لینکی هم که داده واسه برنامه نویسی تحت شبکه از طریق سوکت ها هست و فعلا چون تهش مخاطلبی نداره بهتره روش کار نکنیم.
--
کار اصلی که باید انجام بدم اینه که قسمتی برای پرداخت درون برنامه ای و نمایش رتبه ی تمام افراد هست.
--
آره اون عکس و راهنمایی ای که گذاشتم رو خودم نوشتم و منمعمولا تا چیزی رو تست نکنم و جواب نگیرم نمی ذارم واسه بقیه.
-
ارسال داده ها رو من یاد دادم.
شما باید حالا روی الگوریتمی فکر کنید که مفهوم AJAX رو توی گیم میکر پیاده سازی کنه.(یعنی یک فایل php یا حالا xml یا هرچیز دیگه ای رو بتونید از سایتتون بخونید اونم به صورت توکار بدون اینکه گیم میکر هنگ کنه.)
اگه مفهوم آژاکس رو نمی دونید این آموزش من رو بخونید :
http://promakers.ir/showthread.php?tid=10063

نکته برای مبتدی ها :
قبل از درک این مفاهیم باید ساخت فرم و روش های sumit فرم های html با متدهای GET و POST رو بلد باشید.
شما تا php بلد نباشید خیلی از چیزایی که می گم رو درک نمی کنید.
ضمنا توی کد game maker که گفتم :
کد:
send_With_GET_method="v1=9";
send_With_POST_method="v2=4&v3=reza";

myURL="http://localhost/emtiaz/get.php?" + send_With_GET_method;
global.post[0] = http_post_string(myURL,send_With_POST_method ) ;
هیچکس نمیاد اسم های send_With_GET_method و send_With_POST_method رو انتخاب نمی کنه.
اکثر سایت های خارجی کد فوق رو ممکنه اینطوری بیارن که شما درک نکنید و بیشتر (بلانسبت) گیج بشید :
کد:
global.post[0] = http_post_string("http://localhost/emtiaz/get.php?v1=9","v2=4&v3=reza" ) ;
من اومدم کد رو طوری تمیز کردم که راحت بفهمید کدوم متغیرها با متد get میفرستیم و کدوما رو به متد post(با استفاده از روش صحیح اسم گذاری استاندارد متغیرها)
-
با تشکر از sajjad3011
کپی شده از پرومیکرز
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۲۸
مدیرکل

گاهی اوقات وقتی با استفاده از کدهای PHP می یاد فایلی رو می خونید دچار خطایی مثل این میشید:


Warning: DOMDocument::load(): I/O warning : failed to load external entity


وقتی فایلی رو می خونید حالا با fgets یا ... و مثلا می خواید یک rss reader بسازید، دقت کنید که حتما باید فایلی که شامل لینک های خبری یا rss هست رو به صورت ANSI ذخیره کنید تا مشکل رفع بشه.

۰ نظر موافقین ۰ مخالفین ۰ ۲۲ مهر ۹۳ ، ۰۲:۴۵
مدیرکل