مكتبة لمعالجة سلسلة PHP مع دعم متعدد البايت. متوافق مع PHP 5.4+، PHP 7+، وHHVM.
s('string')->toTitleCase()->ensureRight('y') == 'Stringy'
راجع الفرع 1.x أو الفرع 2.x للحصول على الوثائق الأقدم.
لماذا؟
تثبيت
OO والتسلسل
الواجهات المنفذة
إنشاء PHP 5.6
StaticStringy
أساليب الطبقة
يخلق
طرق المثيل
إلحاق | في | بين | com.camelize |
حرف | انهيار وايت سبيس | يتضمن | يحتوي على الكل |
يحتوي علىأي | countSubstr | Dasherize | تحديد |
ينتهي مع | ينتهي مع أي | تأكد من اليسار | ضمان الحق |
أولاً | getEncoding | hasLowerCase | hasUpperCase |
htmlDecode | htmlEncode | أنسنة | مؤشر |
indexOfLast | إدراج | isAlpha | هو أبجدي رقمي |
isBase64 | isBlank | isHexadecimal | isJson |
isLowerCase | isSerialized | isUpperCase | آخر |
طول | خطوط | longCommonPrefix | longCommonSuffix |
longCommonSubstring | LowerCaseFirst | وسادة | com.padBoth |
PadLeft | com.padRight | إضافة مسبقة | regexReplace |
RemoveLeft | RemoveRight | يكرر | يستبدل |
يعكس | SafeTruncate | خلط | slugify |
شريحة | ينقسم | يبدأ مع | يبدأ مع أي |
stripWhitespace | substr | تحيط | SwapCase |
مرتب | عنوان | toAscii | toBoolean |
toLowerCase | toSpaces | toTabs | toTitleCase |
toUpperCase | تقليم | TrimLeft | TrimRight |
اقتطاع | وأكد | UpperCamelize | UpperCaseFirst |
ملحقات
الاختبارات
رخصة
ويرجع ذلك جزئيًا إلى نقص دعم البايتات المتعددة (بما في ذلك UTF-8) عبر العديد من وظائف السلسلة القياسية في PHP. ولكن أيضًا لتقديم غلاف OO حول الوظائف المتوافقة مع وحدات mbstring
متعددة البايت. يتعامل Stringy مع بعض المراوغات، ويوفر وظائف إضافية، ونأمل أن يجعل التعامل مع السلاسل أسهل قليلًا!
// مكتبة قياسيةstrtoupper('fòôbàř'); // 'FòôBàř'strlen('fòôbàř'); // 10// mbstringmb_strtoupper('fòôbàř'); // 'FÒÔBÀŘ'mb_strlen('fòôbàř'); // '6'// Stringys('fòôbàř')->toUpperCase(); // 'FÒÔBÀŘ's('fòôbàř')->length(); // '6'
إذا كنت تستخدم Composer لإدارة التبعيات، فيمكنك تضمين ما يلي في ملف Composer.json الخاص بك:
"يتطلب": {"danielstjules/stringy": "~3.1.0"}
وبعد ذلك، بعد تشغيل composer update
أو php composer.phar update
، يمكنك تحميل الفصل باستخدام التحميل التلقائي للملحن:
يتطلب "بائع/autoload.php"؛
بخلاف ذلك، يمكنك ببساطة طلب الملف مباشرة:
require_once 'المسار/إلى/Stringy/src/Stringy.php'؛
وفي كلتا الحالتين، أقترح استخدام اسم مستعار.
استخدم StringyStringy كـ S؛
يرجى ملاحظة أن Stringy يعتمد على وحدة mbstring
لدعمها الأساسي متعدد البايت. إذا لم يتم العثور على الوحدة، فسوف يستخدم Stringy Symfony/polyfill-mbstring. ex-mbstring هي وحدة غير افتراضية، ولكنها شائعة جدًا. على سبيل المثال، مع debian وubuntu، يتم تضمينه في libapache2-mod-php5، وphp5-cli، وphp5-fpm. بالنسبة لمستخدمي OSX، يعد هذا الإعداد افتراضيًا لأي إصدار PHP مثبت مع homebrew. إذا كنت تقوم بتجميع PHP من البداية، فيمكن تضمينه مع علامة --enable-mbstring
.
توفر المكتبة تسلسل طريقة OO، كما هو موضح أدناه:
استخدم StringyStringy كـ S;echo S::create('fòô bàř')->collapseWhitespace()->swapCase(); // 'FÒÔ BÀŘ'
لدى StringyStringy
طريقة __toString()، والتي تُرجع السلسلة الحالية عند استخدام الكائن في سياق سلسلة، على سبيل المثال: (string) S::create('foo') // 'foo'
تطبق StringyStringy
واجهة IteratorAggregate
، مما يعني أنه يمكن استخدام foreach
مع مثيل للفئة:
$stringy = S::create('fòôbàř');foreach ($stringy as $char) {echo $char; }// 'فوبار'
يقوم بتنفيذ واجهة Countable
، مما يتيح استخدام count()
لاسترداد عدد الأحرف في السلسلة:
$stringy = S::create('fòô');count($stringy); // 3
علاوة على ذلك، تم تنفيذ واجهة ArrayAccess
. ونتيجة لذلك، يمكن استخدام isset()
للتحقق من وجود حرف في فهرس معين. وبما أن StringyStringy
غير قابل للتغيير، فإن أي استدعاء لـ offsetSet
أو offsetUnset
سيؤدي إلى حدوث استثناء. ومع ذلك، فقد تم تنفيذ offsetGet
، وهو يقبل الفهارس الموجبة والسالبة. تؤدي الفهارس غير الصالحة إلى OutOfBoundsException
.
$stringy = S::create('bàř');echo $stringy[2]; // 'ř'echo $stringy[-2]; // 'à'isset($stringy[-4]); // false$stringy[3]; // OutOfBoundsException$stringy[2] = 'a'; // استثناء
اعتبارًا من PHP 5.6، أصبحت use function
متاحة لاستيراد الوظائف. يعرض Stringy دالة ذات مساحة اسم، Stringycreate
، والتي تصدر نفس السلوك مثل StringyStringy::create()
. إذا كنت تستخدم PHP 5.6، أو وقت تشغيل آخر يدعم بناء جملة use function
، فيمكنك الاستفادة من واجهة برمجة التطبيقات الأكثر بساطة كما هو موضح أدناه:
استخدم الوظيفة Stringycreate as s;// بدلاً من: S::create('fòô bàř')s('fòô bàř')->collapseWhitespace()->swapCase();
تتوفر كافة الأساليب المدرجة ضمن "طرق المثيل" كجزء من برنامج تضمين ثابت. بالنسبة إلى أساليب StaticStringy، من المتوقع أن يكون الترميز الاختياري هو الوسيطة الأخيرة. لم يتم تحويل القيمة المرجعة، وبالتالي قد تكون من النوع Stringy، أو عدد صحيح، أو منطقي، وما إلى ذلك.
استخدم StringyStaticStringy كـ S;// يترجم إلى Stringy::create('fòôbàř')->slice(0, 3);// يُرجع كائن Stringy بالسلسلة "fòô"S::slice('fòôbàř', 0, 3)؛
ينشئ كائنًا متسلسلًا ويعين كلاً من خصائص str والتشفير للقيم المقدمة. يتم إرسال $str إلى سلسلة قبل التعيين، وإذا لم يتم تحديد $encoding، فسيتم تعيينه افتراضيًا على mb_internal_encoding(). ثم تقوم بإرجاع الكائن الذي تمت تهيئته. يرمي InvalidArgumentException إذا كانت الوسيطة الأولى عبارة عن مصفوفة أو كائن بدون أسلوب __toString.
$stringy = S::create('fòôbàř'); // "فوبار"
الكائنات الخيطية غير قابلة للتغيير. جميع الأمثلة أدناه تستخدم استيراد دالة PHP 5.6، وتركيب جملة المصفوفة القصيرة PHP 5.4. ويفترضون أيضًا أن التشفير الذي تم إرجاعه بواسطة mb_internal_encoding() هو UTF-8. لمزيد من التفاصيل، راجع وثائق طريقة الإنشاء أعلاه، بالإضافة إلى الملاحظات حول إنشاء PHP 5.6.
إرجاع سلسلة جديدة مع إضافة سلسلة $.
s('fòô')->append('bàř'); // 'فوبار'
إرجاع الحرف عند $index، مع الفهارس التي تبدأ من 0.
s('fòôbàř')->at(3); // "ب"
إرجاع السلسلة الفرعية بين $start و$end، إذا وجدت، أو سلسلة فارغة. قد يتم توفير إزاحة اختيارية يمكن من خلالها بدء البحث عن سلسلة البداية.
s('{foo} و {bar}')->between('{', '}'); // "فو"
تُرجع نسخة CamelCase من السلسلة. يقوم بقص المسافات المحيطة، وتكبير الحروف التي تتبع الأرقام، والمسافات، والشرطات والشرطات السفلية، وإزالة المسافات، والشرطات، وكذلك الشرطات السفلية.
s('Camel-Case')->camelize(); // "حالة الجمل"
إرجاع مصفوفة تتكون من الأحرف الموجودة في السلسلة.
s('fòôbàř')->chars(); // ['f', 'ò', 'ô', 'b', 'à', 'ř']
يقوم بقص السلسلة واستبدال أحرف المسافات البيضاء المتتالية بمسافة واحدة. يتضمن ذلك علامات التبويب وأحرف الأسطر الجديدة، بالإضافة إلى المسافات البيضاء متعددة البايت مثل المساحة الرفيعة والمساحة الإيديوغرافية.
s(' Ο συγγραφέας ')->collapseWhitespace(); // """"""""""""""""""
يُرجع صحيحًا إذا كانت السلسلة تحتوي على $needle، ويُرجع خطأً بخلاف ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('Ο συγγραφέας είπε')->يحتوي على('συγγραφέας'); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على جميع الإبر $، ويُرجع خطأً في حالة عدم ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('foo & bar')->containsAll(['foo', 'bar']); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أي إبر $، ويُرجع خطأً بخلاف ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('str يحتوي على foo')->containsAny(['foo', 'bar']); // حقيقي
إرجاع عدد مرات ظهور السلسلة الفرعية $ في السلسلة المحددة. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('Ο συγγραφέας είπε')->countSubstr('α'); // 2
إرجاع أحرف صغيرة وسلسلة مشذبة مفصولة بشرطات. يتم إدراج الشرطات قبل الأحرف الكبيرة (باستثناء الحرف الأول من السلسلة)، وبدلاً من المسافات والشرطات السفلية.
s('fooBar')->dasherize(); // "فو بار"
تُرجع سلسلة صغيرة ومقتطعة مفصولة بالمحدد المحدد. يتم إدراج المحددات قبل الأحرف الكبيرة (باستثناء الحرف الأول من السلسلة)، وبدلاً من المسافات والشرطات والشرطات السفلية. لا يتم تحويل محددات ألفا إلى أحرف صغيرة.
s('fooBar')->delimit('::'); // 'فو::بار'
يُرجع صحيحًا إذا كانت السلسلة تنتهي بسلسلة فرعية $، ويُرجع خطأً بخلاف ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('fòôbàř')->endsWith('bàř'); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تنتهي بأي من السلاسل الفرعية $، ويُرجع خطأً في حالة خلاف ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('fòôbàř')->endsWithAny(['bàř', 'baz']); // حقيقي
يضمن أن السلسلة تبدأ بـ $substring. إذا لم يحدث ذلك، فهو مُسبق.
s('foobar')->ensureLeft('http://'); // 'http://foobar'
يضمن أن السلسلة تنتهي بـ $substring. إذا لم يحدث ذلك، يتم إلحاقه.
s('foobar')->ensureRight('.com'); // "فوبار.كوم"
إرجاع الأحرف $n الأولى من السلسلة.
s('fòôbàř')->first(3); // "فو"
إرجاع الترميز المستخدم بواسطة كائن Stringy.
s('fòôbàř')->getEncoding(); // "UTF-8"
يُرجع صحيحًا إذا كانت السلسلة تحتوي على حرف صغير، ويُرجع خطأً في حالة عدم ذلك.
s('fòôbàř')->hasLowerCase(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على حرف كبير، ويُرجع خطأً في حالة عدم ذلك.
s('fòôbàř')->hasUpperCase(); // خطأ شنيع
تحويل كافة كيانات HTML إلى أحرفها القابلة للتطبيق. اسم مستعار لـ html_entity_decode. للحصول على قائمة بالأعلام، راجع http://php.net/manual/en/function.html-entity-decode.php
s('&')->htmlDecode(); // '&'
تحويل كافة الأحرف القابلة للتطبيق إلى كيانات HTML. اسم مستعار لـ htmlentities. ارجع إلى http://php.net/manual/en/function.htmlentities.php للحصول على قائمة بالأعلام.
s('&')->htmlEncode(); // '&'
تكبير الكلمة الأولى من السلسلة، واستبدال الشرطة السفلية بمسافات، وإزالة '_id'.
s('author_id')->إضفاء طابع إنساني(); // 'مؤلف'
إرجاع فهرس التواجد الأول لـ $needle في السلسلة، وخطأ إذا لم يتم العثور عليه. يقبل إزاحة اختيارية يبدأ منها البحث. يتم البحث عن فهرس سلبي من النهاية
s('string')->indexOf('ing'); // 3
إرجاع فهرس آخر تواجد لـ $needle في السلسلة، وخطأ إذا لم يتم العثور عليه. يقبل إزاحة اختيارية يبدأ منها البحث. قد تكون الإزاحات سالبة عند حسابها من الحرف الأخير في السلسلة.
s('foobarfoo')->indexOfLast('foo'); // 10
يُدرج سلسلة فرعية $ في السلسلة الموجودة في الفهرس $ المقدم.
s('fòôbř')->insert('à', 4); // 'فوبار'
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف أبجدية فقط، ويُرجع خطأً في حالة عدم ذلك.
s('丹尼爾')->isAlpha(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف أبجدية ورقمية فقط، ويُرجع خطأً في حالة عدم ذلك.
s('دانيال1')->isAlphanumeric(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة بترميز base64، ويُرجع خطأً في حالة عدم ذلك.
s('Zm9vYmFy')->isBase64(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف ذات مسافات بيضاء فقط، ويُرجع خطأً في حالة عدم ذلك.
s("nt vf")->isBlank(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف سداسية عشرية فقط، ويُرجع خطأً في حالة عدم ذلك.
s('A102F')->isHexadecimal(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة JSON، ويُرجع خطأً في حالة عدم ذلك. على عكس json_decode في PHP 5.x، تتوافق هذه الطريقة مع PHP 7 وموزعي JSON الآخرين، حيث لا تعتبر السلسلة الفارغة صالحة JSON.
s('{"foo": "bar"}')->isJson(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف صغيرة فقط، ويُرجع خطأً في حالة عدم ذلك.
s('fòôbàř')->isLowerCase(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة مُتسلسلة، ويُرجع خطأً في حالة عدم ذلك.
s('a:1:{s:3:"foo";s:3:"bar";}')->isSerialized(); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تحتوي على أحرف كبيرة فقط، ويُرجع خطأً في حالة عدم ذلك.
s('FÒÔBÀŘ')->isUpperCase(); // حقيقي
إرجاع آخر $n أحرف من السلسلة.
s('fòôbàř')->الأخير(3); // 'حاجِز'
إرجاع طول السلسلة. اسم مستعار للدالة mb_strlen() في PHP.
s('fòôbàř')->length(); // 6
الانقسامات على الأسطر الجديدة والإرجاع إلى أول السطر، مما يؤدي إلى إرجاع مجموعة من الكائنات Stringy المقابلة للأسطر الموجودة في السلسلة.
s("fòôrnbàřn")->lines(); // ['fòô'، 'bàř'، '']
تُرجع أطول بادئة مشتركة بين السلسلة النصية و$otherStr.
s('foobar')->longestCommonPrefix('foobaz'); // "فوبا"
تُرجع أطول لاحقة مشتركة بين السلسلة النصية و$otherStr.
s('fòôbàř')->longestCommonSuffix('fòrbàř'); // 'حاجِز'
تُرجع أطول سلسلة فرعية مشتركة بين السلسلة و$otherStr. وفي حالة الروابط، فإنها ترجع ما حدث أولا.
s('foobar')->longestCommonSubstring('boofar'); // "أوو"
يحول الحرف الأول من السلسلة المتوفرة إلى أحرف صغيرة.
s('Σ foo')->lowerCaseFirst(); // "σ فو"
يسند السلسلة إلى طول معين باستخدام $padStr. إذا كان الطول أقل من أو يساوي طول السلسلة، فلن يتم استخدام أي حشوة. السلسلة الافتراضية المستخدمة للحشو هي مسافة، والنوع الافتراضي (أحد "يسار" و"يمين" و"كلاهما") هو "يمين". يرمي InvalidArgumentException إذا لم يكن $padType واحدًا من تلك القيم الثلاث.
s('fòôbàř')->pad(9, '-/', 'left'); // '-/-fòôbàř'
تقوم بإرجاع سلسلة جديدة بطول معين بحيث يكون كلا جانبي السلسلة مبطنين. الاسم المستعار لـ ()pad مع $padType لـ "كلاهما".
s('foo bar')->padBoth(9, ' '); // 'فو بار'
إرجاع سلسلة جديدة بطول معين بحيث تكون بداية السلسلة مبطنة. الاسم المستعار للوسادة () مع $padType من 'left'.
s('foo bar')->padLeft(9, ' '); // "شريط فو"
إرجاع سلسلة جديدة بطول معين بحيث تكون نهاية السلسلة مبطنة. الاسم المستعار لـ ()pad مع $padType من 'right'.
s('foo bar')->padRight(10, '_*'); // 'فو بار_*_'
إرجاع سلسلة جديدة تبدأ بـ $string.
s('bàř')->prepend('fòô'); // 'فوبار'
يستبدل كل تكرارات $pattern في $str بـ $replacement. اسم مستعار لـ mb_ereg_replace(). لاحظ أن الخيار 'i' مع الأنماط متعددة البايت في mb_ereg_replace() يتطلب PHP 5.6+ للحصول على النتائج الصحيحة. ويرجع ذلك إلى نقص الدعم في الإصدار المجمع من Oniguruma في PHP <5.6، والإصدارات الحالية من HHVM (3.8 وما دونه).
s('fòô ')->regexReplace('f[òô]+s', 'bàř'); // 'bàř's('fò')->regexReplace('(ò)', '1ô'); // "فو"
إرجاع سلسلة جديدة مع إزالة البادئة $substring، إذا كانت موجودة.
s('fòôbàř')->removeLeft('fòô'); // 'حاجِز'
إرجاع سلسلة جديدة مع إزالة اللاحقة $substring، إذا كانت موجودة.
s('fòôbàř')->removeRight('bàř'); // "فو"
إرجاع سلسلة متكررة نظرا لمضاعف. اسم مستعار لـ str_repeat.
الصورة('α')->كرر(3); // "ألفا ألفا"
يستبدل كل تكرارات $search في $str بـ $replacement.
s('fòô bàř fòô bàř')->replace('fòô ', ''); // "بار بار"
إرجاع سلسلة معكوسة. نسخة متعددة البايت من strrev ().
s('fòôbàř')->reverse(); // "رابوف"
يقتطع السلسلة إلى طول معين، مع ضمان عدم تقسيم الكلمات. إذا تم توفير سلسلة فرعية $، وحدث الاقتطاع، فسيتم اقتطاع السلسلة بشكل أكبر بحيث يمكن إلحاق السلسلة الفرعية دون تجاوز الطول المطلوب.
s('ما هي خططك اليوم؟')->safeTruncate(22, '...');// 'ما هي خططك...'
دالة str_shuffle() متعددة البايت. تقوم بإرجاع سلسلة بأحرفها بترتيب عشوائي.
s('fòôbàř')->shuffle(); // "أروبوف"
يحول السلسلة إلى سبيكة URL. يتضمن ذلك استبدال الأحرف غير ASCII بأقرب مرادفاتها من ASCII، وإزالة الأحرف غير ASCII والأحرف غير الأبجدية الرقمية المتبقية، واستبدال المسافة البيضاء باستبدال $. يتم تعيين الاستبدال افتراضيًا على شرطة واحدة، ويتم أيضًا تحويل السلسلة إلى أحرف صغيرة. يمكن أيضًا توفير لغة السلسلة المصدر للترجمة الصوتية الخاصة بلغة معينة.
s('استخدام سلاسل مثل fòô bàř')->slugify(); // "استخدام السلاسل مثل شريط foo"
تُرجع السلسلة الفرعية التي تبدأ من $start، وحتى، ولكن لا تتضمن الفهرس المحدد بواسطة $end. إذا تم حذف $end، فستستخرج الدالة السلسلة المتبقية. إذا كانت $end سالبة، فسيتم حسابها من نهاية السلسلة.
s('fòôbàř')->slice(3, -1); // "با"
يقسم السلسلة باستخدام التعبير العادي المقدم، ويعيد مصفوفة من الكائنات Stringy. سيؤدي الحد الصحيح الاختياري $limit إلى اقتطاع النتائج.
s('foo,bar,baz')->split(',', 2); // ["فو"، "شريط"]
يُرجع صحيحًا إذا كانت السلسلة تبدأ بسلسلة فرعية $، ويُرجع خطأً بخلاف ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('FÒÔbàřbaz')->startsWith('fòôbàř', false); // حقيقي
يُرجع صحيحًا إذا كانت السلسلة تبدأ بأي من السلاسل الفرعية $، ويُرجع خطأً في حالة عدم ذلك. بشكل افتراضي، تكون المقارنة حساسة لحالة الأحرف، ولكن يمكن جعلها غير حساسة عن طريق تعيين $caseSensitive إلى false.
s('FÒÔbàřbaz')->startsWithAny(['fòô', 'bàř'], false); // حقيقي
تجريد جميع أحرف المسافة البيضاء. يتضمن ذلك علامات التبويب وأحرف الأسطر الجديدة، بالإضافة إلى المسافات البيضاء متعددة البايت مثل المساحة الرفيعة والمساحة الإيديوغرافية.
s(' Ο συγγραφέας ')->stripWhitespace(); // """""""""""""
تُرجع السلسلة الفرعية التي تبدأ من $start بالطول $ المحدد. وهي تختلف عن الدالة mb_substr() في أن توفير $ length null سيؤدي إلى إرجاع بقية السلسلة، بدلاً من سلسلة فارغة.
s('fòôbàř')->substr(2, 3); // 'أوبا'
يحيط بسلسلة مع السلسلة الفرعية المحددة.
s(' ͜ ')-> محيطي('ʘ'); // 'ʘ ͜ ʘ'
إرجاع نسخة مبادلة حالة من السلسلة.
s('Ντανικ')->swapCase(); // 'الاسم'
إرجاع سلسلة تحتوي على علامات اقتباس ذكية وأحرف حذف وشرطات من Windows-1252 (تُستخدم عادةً في مستندات Word) مع استبدالها بمكافئاتها من ASCII.
s('"أرى..."')->مرتب(); // '"أرى..."'
إرجاع سلسلة مشذبة مع الحرف الأول من كل كلمة بأحرف كبيرة. يقبل أيضًا مصفوفة $ignore، مما يسمح لك بسرد الكلمات التي لا يجب كتابتها بالأحرف الكبيرة.
$ignore = ['at', 'by', 'for', 'in', 'of', 'on', 'out', 'to', 'the'];s('أحب مشاهدة التلفزيون' )->titleize($ignore);// "أحب مشاهدة التلفاز"
إرجاع نسخة ASCII من السلسلة. يتم استبدال مجموعة من الأحرف غير ASCII بأقرب نظيراتها من ASCII، ويتم إزالة الباقي بشكل افتراضي. يمكن توفير اللغة أو الإعدادات المحلية للسلسلة المصدر للترجمة الصوتية الخاصة باللغة بأي من التنسيقات التالية: en، أو en_GB، أو en-GB. على سبيل المثال، يؤدي تمرير "de" إلى تعيين "äöü" إلى "aeoeue" بدلاً من "aou" كما هو الحال في اللغات الأخرى.
s('fòôbàř')->toAscii(); // 'foobar's('äöü')->toAscii(); // 'aou's('äöü')->toAscii('de'); // "أيويو"
تقوم بإرجاع تمثيل منطقي لقيمة السلسلة المنطقية المحددة. على سبيل المثال، ستعرض القيم "true" و"1" و"on" و"yes" القيمة true. ستعرض "خطأ" و"0" و"إيقاف" و"لا" خطأ. وفي جميع الحالات يتم تجاهل الحالة. بالنسبة للسلاسل الرقمية الأخرى، ستحدد علاماتها القيمة المرجعة. بالإضافة إلى ذلك، فإن السلاسل الفارغة التي تتكون من مسافة بيضاء فقط ستُرجع خطأ. بالنسبة لجميع السلاسل الأخرى، تكون القيمة المرجعة نتيجة لعملية تحويل منطقية.
s('OFF')->toBoolean(); // خطأ شنيع
تحويل كافة الأحرف في السلسلة إلى أحرف صغيرة. اسم مستعار لـ mb_strtolower() الخاص بـ PHP.
s('FÒÔBÀŘ')->toLowerCase(); // "فوبار"
يحول كل علامة تبويب في السلسلة إلى عدد معين من المسافات، كما هو محدد بواسطة $tabLength. بشكل افتراضي، يتم تحويل كل علامة تبويب إلى 4 مسافات متتالية.
s(' Stringpeech = "Hi"')->toSpaces(); // 'سلسلة الكلام = "مرحبًا"'
يحول كل تواجد لعدد متتالي من المسافات، كما هو محدد بواسطة $tabLength، إلى علامة تبويب. بشكل افتراضي، يتم تحويل كل 4 مسافات متتالية إلى علامة تبويب.
s(' fòô bàř')->toTabs();// ' fòô bàř'
تحويل الحرف الأول من كل كلمة في السلسلة إلى أحرف كبيرة.
s('fòô bàř')->toTitleCase(); // "فو بار"
تحويل كافة الأحرف في السلسلة إلى أحرف كبيرة. اسم مستعار لـ mb_strtoupper() الخاص بـ PHP.
s('fòôbàř')->toUpperCase(); // "FÒÔBÀŘ"
إرجاع سلسلة مع إزالة المسافة البيضاء من بداية السلسلة ونهايتها. يدعم إزالة المسافات البيضاء يونيكود. يقبل سلسلة اختيارية من الأحرف لتجريدها بدلاً من الإعدادات الافتراضية.
s(' fòôbàř ')->trim(); // "فوبار"
إرجاع سلسلة مع إزالة المسافة البيضاء من بداية السلسلة. يدعم إزالة المسافات البيضاء يونيكود. يقبل سلسلة اختيارية من الأحرف لتجريدها بدلاً من الإعدادات الافتراضية.
s(' fòôbàř ')->trimLeft(); // 'فوبار'
إرجاع سلسلة مع إزالة المسافة البيضاء من نهاية السلسلة. يدعم إزالة المسافات البيضاء يونيكود. يقبل سلسلة اختيارية من الأحرف لتجريدها بدلاً من الإعدادات الافتراضية.
s(' fòôbàř ')->trimRight(); // ' فوبار'
يقتطع السلسلة إلى طول معين. إذا تم توفير سلسلة فرعية $، وحدث الاقتطاع، فسيتم اقتطاع السلسلة بشكل أكبر بحيث يمكن إلحاق السلسلة الفرعية دون تجاوز الطول المطلوب.
s('ما هي خططك اليوم؟')->truncate(19, '...'); // "ما هي تفضيلاتك..."
تُرجع سلسلة صغيرة ومقتطعة مفصولة بشرطات سفلية. يتم إدراج الشرطات السفلية قبل الأحرف الكبيرة (باستثناء الحرف الأول من السلسلة)، وبدلاً من المسافات والشرطات.
s('TestUCase')->underscore(); // "اختبار_u_case"
إرجاع إصدار UpperCamelCase من السلسلة المتوفرة. يقوم بقص المساحات المحيطة، وتكبير الحروف التي تتبع الأرقام والمسافات والشرطات والشرطات السفلية، وإزالة المسافات والشرطات والشرطات السفلية.
s('علبة الجمل العلوية')->upperCamelize(); // "UpperCamelCase"
يحول الحرف الأول من السلسلة المتوفرة إلى أحرف كبيرة.
s('σ foo')->upperCaseFirst(); // 'Σ فو'
فيما يلي قائمة بالمكتبات التي تمتد Stringy:
SliceableStringy: شرائح سلسلة تشبه Python في PHP
SubStringy: طرق السلسلة الفرعية المتقدمة
من دليل المشروع، يمكن إجراء الاختبارات باستخدام phpunit
تم إصداره بموجب ترخيص MIT - راجع LICENSE.txt
للحصول على التفاصيل.