অ্যান্ডস্কোর দিয়ে স্পেস প্রতিস্থাপন করা


136

আমি যে ব্যবহারকারীদের মত একটি নাম প্রবেশ করবে একটি পিএইচপি স্ক্রিপ্ট আছে: Alex_Newton,

তবে কিছু ব্যবহারকারী আন্ডারস্কোরের পরিবর্তে একটি স্থান ব্যবহার করবেন, সুতরাং আমার প্রশ্নটি হ'ল:

আমি কীভাবে পিএইচপি-তে অ্যান্ডোরস্কোর দিয়ে স্পেসগুলি স্বয়ংক্রিয়ভাবে প্রতিস্থাপন করব?

উত্তর:



70

অন্যরা যেমন এটি ব্যবহার করে কীভাবে করবেন তা ব্যাখ্যা করেছেন str_replace, আপনি এটি অর্জনের জন্য রেজেক্সও ব্যবহার করতে পারেন।

$name = preg_replace('/\s+/', '_', $name);

11
এই অর্থে এটি আরও ভাল সমাধান যে এটি একক আন্ডারস্কোরের সাথে একাধিক স্পেস প্রতিস্থাপন করে যা সাধারণত কাঙ্ক্ষিত আউটপুট।
হিমশীতল

5
এছাড়াও ট্যাব এবং যা কিছু
লুপ্যাক্স


12

পিএইচপি এর str_replace ফাংশন ব্যবহার করুন ।

কিছুটা এইরকম:

$str = str_replace(' ', '_', $str);



7

আপনি শব্দগুলি শুরু করতে বা _ওয়ার্ড_মোর_ওয়ার্ড_এর মতো আন্ডারস্কোর দিয়ে শেষ করতে বাধা দিতে এই কাজটি করতে পারেন, এটি সাদা স্পেস দিয়ে শুরু এবং শেষ এড়াতে পারে।

$trimmed = trim($string); // Trims both ends
$convert = str_replace('', '_', $trimmed);

এটি আকর্ষণীয়, কারণ লাইনের শুরু / শেষের ফাঁকা স্থানগুলি _ দ্বারা প্রতিস্থাপিত হবে না তবে পরিবর্তে সরানো হবে। তবে, মনে রাখবেন যে এটি স্ট্রিংয়ের শুরু / শেষ থেকে অন্যান্য অক্ষরগুলি (\ r এবং \ n বা ট্যাব) হিসাবে ছাঁটাবে / করবে।
পল

1

এটি আমার কোডের একটি অংশ যা আমার ফাইলগুলির নামকরণের জন্য আন্ডারস্কোরগুলিতে স্পেস তৈরি করে:

$file = basename($_FILES['upload']['name']);
$file = str_replace(' ','_',$file);

1

আমি এই মত ব্যবহার

$option = trim($option);
$option = str_replace(' ', '_', $option);

0

আপনি str_replace আপনার নামটি পরিবর্তনশীল হিসাবে বলতে পারেন$name

$result = str_replace(' ', '_', $name);

আরেকটি উপায় হ'ল রেগেক্স ব্যবহার করা, কারণ এটি 2-সময়ের স্থান ইত্যাদি দূর করতে সহায়তা করবে etc.

  $result=  preg_replace('/\s+/', '_', $name);

0

Strtrস্ট্রিংয়ের পরিবর্তে একক অক্ষর প্রতিস্থাপন করে, সুতরাং এটি এই উদাহরণের জন্য একটি ভাল সমাধান। ধারণা strtrকরা যায় এর চেয়ে দ্রুত str_replace(তবে এই ব্যবহারের ক্ষেত্রে তারা উভয়ই অত্যন্ত দ্রুত)।

echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton

দুর্দান্ত, যদি একাধিক, লম্বা ফাইলগুলিতে (লগস?) স্পেসগুলি "_" তে রূপান্তর করা হয় তবে এটি পরিমাপযোগ্য দ্রুততর হতে পারে? (যদিও কোনও প্রমাণ / রেফারেন্স না থাকলেও মৃত্যুদন্ডের গতিতে আগ্রহী যে কোনও ব্যক্তির পক্ষে এটি একটি আকর্ষণীয় উত্তর হতে পারে)।
পল

আরে পল, আমিও তাই ভাবব। এটি চেষ্টা করুন এবং এটি মানদণ্ড করুন।
থোরাসিয়াস অ্যাপোটাইট

0

str_replace- এটি সুস্পষ্ট সমাধান। তবে কখনও কখনও আপনাকে জানতে হবে সেখানে ঠিক ফাঁকা স্থানগুলি কী। আমার সিএসভি ফাইল থেকে ফাঁকা জায়গায় সমস্যা আছে।

দুটি চর ছিল তবে তার মধ্যে একটি ছিল 0160 (0x0A0) এবং অন্যটি অদৃশ্য ছিল (0x0C2)

আমার চূড়ান্ত সমাধান:

$str = preg_replace('/\xC2\xA0+/', '', $str);

আমি এমসি থেকে এইচএক্স ভিউয়ারের অদৃশ্য প্রতীকটি পেয়েছি (মধ্যরাতের দর্শক - এফ 3 - এফ 9)


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