আমি কোনও পিএইচপি ফাইলকে ভেরিয়েবলের মধ্যে কীভাবে লোড করব?


101

আমার একটি পিএইচপি ফাইলটি ভেরিয়েবলের মধ্যে লোড করা দরকার। পছন্দinclude();

আমি এর মতো একটি সাধারণ HTML ফাইল লোড করেছি:

$Vdata = file_get_contents("textfile.txt");

তবে এখন আমার একটি পিএইচপি ফাইল লোড করা দরকার।

উত্তর:


117

আমি মনে করি আপনি যদি পিএইচপি দ্বারা উত্পাদিত সামগ্রীটি পেতে চান তবে যদি এটি ব্যবহার করেন:

$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');

অন্যথায় আপনি যদি পিএইচপি ফাইলের উত্স কোড পেতে চান তবে এটি একটি টেক্সট ফাইলের মতোই:

$Vdata = file_get_contents('path/to/YOUR/FILE.php');

6
আমি যদি পিএইচপি ব্যবহার না করে "পিএইচপি দ্বারা উত্পন্ন সামগ্রী" পেতে এবং সরাসরি পথ ব্যবহার করতে চাই তবে কী হবে?
ওসায়

4
@ ওসা: আপনার প্রয়োজনের উপর নির্ভর করে আপনি সম্ভবত ব্যবহার করতে পারেন eval()বা আপনি যদি আরও জটিল কোড ব্যবহার করছেন: github.com/nikic/PHP- পার্সার
অ্যালিক্স অ্যাক্সেল

4
পিএইচপি পার্সার প্রয়োগ করা ঠিক তার জন্য একটি বিশাল ওভারকিলের মতো বলে মনে হচ্ছে
ডেভিড ফারিয়ানা

4
এটি কীভাবে পোস্ট বা জিইটি পাস করবে তা আমি দেখতে পাচ্ছি না। আমি মনে করি নিওবির উত্তর আরও সঠিক এবং উপযুক্ত হবে, যেহেতু বাহ্যিক পিএইচপি ফাইলটি বর্তমানের প্রসঙ্গে প্রক্রিয়াকরণ করা হবে।
এডিটিসি

উপরের উদাহরণটি ব্যবহার করে আপনি get_template_directory_uri () ব্যবহার করতে পারেন এবং আপনার ফাইলের পথে যোগ দিতে পারেন। এটি সরাসরি পথ ব্যবহার করার সমস্যাটি সমাধান করবে। $Vdata = file_get_contents(get_template_directory_uri() . '/path/to/file/in/theme.text');
ইয়ান ব্রুস

125
ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

ob_get_clean ()


4
ওই কাজগুলো! তবে যখনই আমি অন্তর্ভুক্ত করার চেষ্টা করব: yourfile.php? Id = 3 এটি কাজ করবে না। কোনও পরামর্শ?
tvgemert

4
যেহেতু আপনি আর এইচটিপি ব্যবহার করছেন না, সেই ক্ষেত্রে আপনাকে values ​​_GET এর মাধ্যমে মানগুলি পাস করতে হবে।
ফ্রান্সেস্কো বেলাদোনা

ছবিগুলি কেমন?
kta

4
টিপ: পিএইচপি ৪.৩.০ থেকে আপনি শেষ দুটি লাইনটি কেবলমাত্র সংক্ষিপ্ত করতে পারেন $myvar = ob_get_clean();( ob_get_clean ডকুমেন্টেশন দেখুন )
ADTC

পারফেক্ট! ধন্যবাদ.
lowtechsun

9

আপনি যদি HT : // ব্যবহার করছেন , যেমনটি আইজির পরামর্শ অনুসারে, আপনি কেবল পিএইচপি স্ক্রিপ্টের আউটপুট পড়তে সক্ষম হবেন। আপনি কেবল পিএইচপি স্ক্রিপ্টটি পড়তে পারবেন যদি এটি আপনার চলমান স্ক্রিপ্টের মতো একই সার্ভারে থাকে। এরপরে আপনি এরকম কিছু ব্যবহার করতে পারেন

$Vdata = file_get_contents('/path/to/your/file.php");

হাই এটি কেবল স্থির এইচটিএমএল পান। এই উদাহরণ দেখুন। যদি এই ফাইলটি আমরা লোড করতে যাচ্ছি; ///////////////// <? php প্রতিধ্বনি ("পাঠ্য 1"); ?> পাঠ্য 2 /////////////// এই আমি খুঁজে পেয়েছি;
////////////////////

@ কম্বুয়া, আপনি কি দয়া করে আপনার মূল প্রশ্নটির সম্পাদনায় আপনার প্রতিক্রিয়াটি স্পষ্ট করে বলতে পারেন, যেখানে আপনার স্পষ্টভাবে ব্যাখ্যা করার জন্য আরও জায়গা রয়েছে? ধন্যবাদ =)
ডেভিড বলেছেন মনিকা

7

আপনি যদি ওয়েব সার্ভারের মাধ্যমে ফাইলটি চালনা না করে লোড করতে চান তবে নীচের কাজ করা উচিত।

$string = eval(file_get_contents("file.php"));

এটি লোড হবে তারপরে ফাইল সামগ্রীগুলি মূল্যায়ন করবে। পিএইচপি ফাইলটি সম্পূর্ণরূপে গঠিত হতে হবে <?phpএবং এটির মূল্যায়নের ?>জন্য ট্যাগগুলি eval


আমি এই পদ্ধতিটি পছন্দ করি। কেবলমাত্র আমার ফাইলটি <? পিএইচপি এবং?> ট্যাগগুলির সাথে মূল্যায়ন করার জন্য পুরোপুরি গঠিত হয় নি। অন্য কোন উপায আছে কি?
ItMeDom

এটা তোলে যদি আপনি যে file.php মধ্যে পিএইচপি কোড লিখতে কাজ করে না
ফার্নান্দো টরেস

5

আপনার ফাইলে যদি এইরকম রিটার্নের বিবৃতি থাকে:

<?php return array(
  'AF' => 'Afeganistão',
  'ZA' => 'África do Sul',
  ...
  'ZW' => 'Zimbabué'
);

আপনি এটির মতো চলকটিতে এটি পেতে পারেন:

$data = include $filePath;

4
প্লাস 1 আপনাকে ধন্যবাদ, আমি
এটিই খুঁজছিলাম

4

তাত্ত্বিকভাবে আপনি কেবল ফোপেন ব্যবহার করতে পারেন, তারপরে স্ট্রিম_জেট_কন্টেন্টগুলি ব্যবহার করুন।

$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);

এটি আপনার জন্য পুরো ফাইলটি স্ট্রিংয়ে পড়তে হবে এবং এটির মূল্যায়ন করা উচিত নয়। যদিও আমি আশ্চর্য হয়েছি যে আপনি স্থানীয় পথটি নির্দিষ্ট করার সময় ফাইল_জেট_অন্টেন্টগুলি কার্যকর হয়নি ....


3

বিকল্পভাবে, আপনি আউটপুট বাফারিং শুরু করতে পারেন, একটি অন্তর্ভুক্ত / প্রয়োজনীয় করতে পারেন এবং তারপরে বাফারিং বন্ধ করতে পারেন। Ob_get_contents () এর সাহায্যে, আপনি কেবল সেই উপাদানটি পেতে পারেন যা সেই অন্যান্য পিএইচপি ফাইল দ্বারা আউটপুট করা হয়েছিল একটি ভেরিয়েবলে।


1

আপনার সার্ভারের অনুমতি_url_fopen বন্ধ থাকলে ফাইল_জেট_কন্টেন্টস () কাজ করবে না । সুরক্ষা ঝুঁকির কারণে বেশিরভাগ ভাগ করা ওয়েব হোস্টগুলি এটি ডিফল্টরূপে বন্ধ করে দিয়েছে। এছাড়াও, পিএইচপি 6-এ , অনুমতি_url_fopen বিকল্পটি আর উপস্থিত থাকবে না এবং সমস্ত ফাংশনগুলি এমনভাবে কাজ করবে যেন এটি বন্ধ হয়ে যায়। সুতরাং এটি ব্যবহারের জন্য খুব খারাপ পদ্ধতি।

আপনি যদি HTTP- র মাধ্যমে ফাইল অ্যাক্সেস করে থাকেন তবে আপনার ব্যবহারের সর্বোত্তম বিকল্পটি হল সিআরএল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.