PDA

View Full Version : حذف تمام فضاهای خالی در یک رشته



behnam shamlo
شنبه 03 دی 1390, 23:20 عصر
سلام
چجوری میشه فاصله های بین کلمات یک رشته را حذف کرد، مثلا وقتی میخوام نام یک فولدر که در سایتم ساختم و از چند کلمه تشکیل شده را در دیتا بیس ذخیره کنم و از اون نام برای مسیر فایلهای داخل همون پوشه در کد php استفاده کنم وجود space در نام فایل یا فولدر باعث میشه به مشکل برخورد کنه
برای رفع این مشکل آیا تابع خاصی وجود داره؟اگه نه باید چکار کرد

pejman_view
شنبه 03 دی 1390, 23:27 عصر
سلام

با اینکه متوجه منظورتون نشدم اما دو تا تابع هست که به کمکتان میاد:
اولی trim() که فاصله های اول و انتهای رشته شما را پاک می کند.
و دومی str_replace() که 3 مقدار دریافت می کند اولی کاراکتری که باید پیدا کند که ما اینجا فضای خالی گذاشتیم دومی مقداری که باید جایگزین شود که اینجا هیچی نگذاشتم که فضای خالی پیدا شده را پاک کند و سومین مقدار رشته مورد نظر است:


str_replace(" ", "", $string);

behnam shamlo
شنبه 03 دی 1390, 23:55 عصر
سلام

با اینکه متوجه منظورتون نشدم اما دو تا تابع هست که به کمکتان میاد:
اولی trim() که فاصله های اول و انتهای رشته شما را پاک می کند.
و دومی str_replace() که 3 مقدار دریافت می کند اولی کاراکتری که باید پیدا کند که ما اینجا فضای خالی گذاشتیم دومی مقداری که باید جایگزین شود که اینجا هیچی نگذاشتم که فضای خالی پیدا شده را پاک کند و سومین مقدار رشته مورد نظر است:


str_replace(" ", "", $string);
فکر میکنم تابع دومی چیزی هستش که میخوام
منظورم این هست که یک رشته مثلا شامل 4 کاراکتر را از ورودی گرفتیم که مطمئنا 3 تا فضای خالی در این رشته باید وجود داشته باشه که اگه بخواهیم از این رشته برای آدرس دهی یک فایل استفاده کنیم چون فضای خالی بین کلمات وجود داره نمی شه
c:\local\folder 1\index.html
مسیر بالا را اگه تو یک کد php بزارم غلط هست دیگه؟
مرسی پژمان

pejman_view
یک شنبه 04 دی 1390, 11:00 صبح
سلام

آدرس بالا بخاطر فضای خالی مشکل پیدا نمی کنه اما بهتره فضای خالی نباشه و می توانید جای فضای خالی از 20% استفاده کنید:


c:\local\folder%201\index.html


و اما بهترین روشی که می خوام بهت بگم:

مانند زیر یکم طولانی اما ارزشش رو داره:

define( 'DS', DIRECTORY_SEPARATOR );
define('PATH', dirname(__FILE__) );

اولین خط برای جدا کردان فولدرها و فایل در مسیر با یک جدا کننده است مانند '\' اما چون در ویندوز و لینوکس با هم فرق دارند بهتر از این روش استفاده کنی.
دومین خط مسیر فولدر فایلی که در آن قرار دارد را بر می گرداند.

امیـرحسین
یک شنبه 04 دی 1390, 19:10 عصر
بجای str_replace این مطمئنتره:

echo '<pre>';
$str = 'Hello Wo
rld';
echo preg_replace('/\s+/', '', $str);
// Output: HelloWorld

irGeek
یک شنبه 04 دی 1390, 22:35 عصر
بجای str_replace این مطمئنتره ولی سرعتش پایین تره
به tip های این بخش مراجع کنی پیداش می کنی!