Best Cucumber Common Library code snippet using StringUtils.rtrim
Generator.php
Source:Generator.php
...81 return $options;82 }83 public function getTemplateFile()84 {85 $dwtLocation = rtrim($this->dwtLocation, DIRECTORY_SEPARATOR);86 return file_get_contents($dwtLocation . DIRECTORY_SEPARATOR . $this->template);87 }88 /**89 * begins generation of template files90 *91 * @return void92 */93 public function start()94 {95 if ($options = AbstractDwt::$options) {96 $this->setOptions($options);97 }98 static::debugLevel(3);99 $this->createTemplateList();100 $this->generateTemplates();101 }102 /**103 * Generates .tpl files from .dwt104 *105 * @return void106 */107 protected function generateTemplates()108 {109 $dwtLocation = rtrim($this->dwtLocation, DIRECTORY_SEPARATOR);110 $tplLocation = rtrim($this->tplLocation, DIRECTORY_SEPARATOR);111 if (!file_exists($dwtLocation)) {112 mkdir($dwtLocation, 0777, true);113 }114 if (!file_exists($tplLocation)) {115 mkdir($tplLocation, 0777, true);116 }117 foreach ($this->templates as $template) {118 $this->template = $template;119 $this->parse();120 $dwt = $this->toDwtInstance();121 $sanitizedName = $this->sanitizeTemplateName($template);122 $outfilename = $tplLocation . DIRECTORY_SEPARATOR . $sanitizedName . self::TPL_FILE_SUFFIX;123 static::debug("Writing {$sanitizedName} to {$outfilename}", 'generateTemplates');124 file_put_contents($outfilename, $dwt);125 $this->generateClassTemplate();126 }127 }128 /**129 * Create a list of dwts130 *131 * @return void132 */133 protected function createTemplateList()134 {135 $this->templates = array();136 $dwtLocation = rtrim($this->dwtLocation, DIRECTORY_SEPARATOR);137 if (!is_dir($dwtLocation)) {138 throw new Exception\InvalidArgumentException("dwt_location is incorrect");139 }140 $handle = opendir($dwtLocation);141 while (false !== ($file = readdir($handle))) {142 if (($this->includeRegex && !preg_match($this->includeRegex, $file)) ||143 ($this->excludeRegex && preg_match($this->excludeRegex, $file))144 ) {145 continue;146 }147 if (substr($file, -4) === static::DWT_FILE_SUFFIX) {148 static::debug("Adding {$file} to the list of templates.", 'createTemplateList');149 $this->templates[] = $file;150 }151 }152 }153 /**154 * Cleans the template filename.155 *156 * @param string $filename Filename of the template157 *158 * @return string Sanitized template name159 */160 protected function sanitizeTemplateName($filename)161 {162 return preg_replace('/[^A-Z0-9]/i', '_', ucfirst(str_replace(self::DWT_FILE_SUFFIX, '', $filename)));163 }164 protected function sanitizeTemplateClassName($filename)165 {166 return str_replace(' ', '', ucwords(str_replace('_', ' ', $this->sanitizeTemplateName($filename))));167 }168 protected function toDwtInstance()169 {170 $dwt = '';171 $paramsRendered = false;172 $this->stateIgnoring = false;173 foreach ($this->tokens as $token) {174 $type = $token->getType();175 if ($type !== HTMLToken::Comment) {176 if (!$this->stateIgnoring) {177 $dwt .= $this->getDwtInstanceContent($token);178 }179 continue;180 }181 $comment = $token->getData();182 if ($this->isInstnaceBegin($comment)) {183 // these markers will be automatically added at the proper tag location184 continue;185 } elseif ($this->isParamDef($comment)) {186 if (!$paramsRendered) {187 $paramsRendered = true;188 $dwt .= $this->getDwtInstanceParams();189 }190 continue;191 } elseif ($regionBegin = $this->isRegionBegin($comment)) {192 $dwt .= $this->getDwtRegionBeginContent($regionBegin);193 continue;194 } elseif ($this->isRegionEnd($comment)) {195 $dwt .= $this->getDwtRegionEndContent();196 continue;197 }198 // it is a generic comment199 if (!$this->stateIgnoring) {200 $dwt .= $comment;201 }202 }203 return $dwt;204 }205 protected function getDwtInstanceParams()206 {207 $stringUtils = $this->getStringUtils();208 $renderedParams = [];209 foreach ($this->getParams() as $param) {210 $renderedParams[] = $stringUtils->getParamDefMarker(211 $stringUtils::INSTANCE_TOKEN,212 $param->getName(),213 $param->getType(),214 $param->getValue()215 );216 }217 return implode("\n", $renderedParams);218 }219 protected function getDwtInstanceContent(HTMLToken $token)220 {221 $stringUtils = $this->getStringUtils();222 $type = $token->getType();223 $tagName = $token->getTagName();224 $content = '';225 // check for content to add before an end tag226 if ($type === HTMLToken::EndTag && HTMLNames::htmlTag === $tagName) {227 $content .= $stringUtils->getInstanceEndMarker();228 }229 $content .= $stringUtils->buildElement($token);230 // check for content to add before a start tag231 if ($type === HTMLToken::StartTag && $tagName === HTMLNames::htmlTag) {232 $content .= $stringUtils->getInstanceBeginMarker('/Templates/' . $this->template);233 }234 return $content;235 }236 protected function getDwtRegionBeginContent($name)237 {238 $stringUtils = $this->getStringUtils();239 $content = '';240 if ($region = $this->getRegion($name)) {241 $this->stateIgnoring = true;242 $content .= $stringUtils->getRegionBeginMarker($stringUtils::INSTANCE_TOKEN, $region->getName());243 $content .= str_replace($stringUtils->getNestedRegionLockExpression(), '', $region);244 }245 return $content;246 }247 protected function getDwtRegionEndContent()248 {249 $stringUtils = $this->getStringUtils();250 $content = '';251 if ($this->stateIgnoring) {252 $this->stateIgnoring = false;253 $content .= $stringUtils->getRegionEndMarker($stringUtils::INSTANCE_TOKEN);254 }255 return $content;256 }257 /**258 * The template class geneation part - single file.259 *260 * @SuppressWarnings(PHPMD.StaticAccess)261 */262 protected function generateClassTemplate()263 {264 $sanitizedName = $this->sanitizeTemplateClassName($this->template);265 $className = $this->classPrefix . $sanitizedName;266 $classLocation = rtrim($this->classLocation, DIRECTORY_SEPARATOR);267 $inputFile = $classLocation . DIRECTORY_SEPARATOR . $sanitizedName . self::PHP_FILE_SUFFIX;268 $fileGenerator = new FileGenerator();269 if (file_exists($inputFile)) {270 $fileGenerator = FileGenerator::fromReflectedFileName($inputFile);271 }272 $fileGenerator->setFilename($inputFile);273 $fileGenerator->setDocBlock(DocBlockGenerator::fromArray([274 'shortDescription' => 'AUTO-GENERATED FILE',275 ]));276 $fileGenerator->setBody('');277 $classGenerator = $fileGenerator->getClass();278 if (!$classGenerator) {279 $classGenerator = ClassGenerator::fromArray([280 'containingFile' => $fileGenerator,...
InstallerUtils.php
Source:InstallerUtils.php
...48 $data = ArrayUtils::defaults([49 'directus_path' => '/'50 ], $data);51 $configStub = static::createConfigFileContent($data);52 $configPath = rtrim($path, '/') . '/config.php';53 file_put_contents($configPath, $configStub);54 }55 /**56 * Create configuration file into $path57 * @param $data58 * @param $path59 */60 protected static function createConfigurationFile($data, $path)61 {62 if (!isset($data['default_language'])) {63 $data['default_language'] = 'en';64 }65 $data = ArrayUtils::defaults([66 'directus_email' => 'root@localhost',67 'default_language' => 'en',68 'feedback_token' => sha1(gmdate('U') . StringUtils::randomString(32)),69 'feedback_login' => true70 ], $data);71 $configurationStub = file_get_contents(__DIR__ . '/stubs/configuration.stub');72 $configurationStub = static::replacePlaceholderValues($configurationStub, $data);73 $configurationPath = rtrim($path, '/') . '/configuration.php';74 file_put_contents($configurationPath, $configurationStub);75 }76 /**77 * Replace placeholder wrapped by {{ }} with $data array78 * @param string $content79 * @param array $data80 * @return string81 */82 public static function replacePlaceholderValues($content, $data)83 {84 if (is_array($data)) {85 $data = ArrayUtils::dot($data);86 }87 $content = StringUtils::replacePlaceholder($content, $data);88 return $content;89 }90 /**91 * Create Directus Tables from Migrations92 * @param string $directusPath93 * @throws \Exception94 */95 public static function createTables($directusPath)96 {97 $directusPath = rtrim($directusPath, '/');98 /**99 * Check if configuration files exists100 * @throws \InvalidArgumentException101 */102 static::checkConfigurationFile($directusPath);103 require_once $directusPath . '/api/config.php';104 $config = require $directusPath . '/api/ruckusing.conf.php';105 $dbConfig = getDatabaseConfig([106 'type' => DB_TYPE,107 'host' => DB_HOST,108 'port' => DB_PORT,109 'name' => DB_NAME,110 'user' => DB_USER,111 'pass' => DB_PASSWORD,112 'directory' => 'schema',113 'prefix' => '',114 ]);115 $config = array_merge($config, $dbConfig);116 $main = new Ruckusing_Framework($config);117 $main->execute(['', 'db:setup']);118 $main->execute(['', 'db:migrate']);119 }120 /**121 * Add Directus default settings122 * @param array $data123 * @param string $directusPath124 * @throws \Exception125 */126 public static function addDefaultSettings($data, $directusPath)127 {128 $directusPath = rtrim($directusPath, '/');129 /**130 * Check if configuration files exists131 * @throws \InvalidArgumentException132 */133 static::checkConfigurationFile($directusPath);134 require_once $directusPath . '/api/config.php';135 $db = Bootstrap::get('ZendDb');136 $defaultSettings = static::getDefaultSettings($data);137 $tableGateway = new TableGateway('directus_settings', $db);138 foreach ($defaultSettings as $setting) {139 $tableGateway->insert($setting);140 }141 }142 /**143 * Add Directus default user144 *145 * @param array $data146 * @return array147 */148 public static function addDefaultUser($data)149 {150 $db = Bootstrap::get('ZendDb');151 $tableGateway = new TableGateway('directus_users', $db);152 $hash = password_hash($data['directus_password'], PASSWORD_DEFAULT, ['cost' => 12]);153 $data['user_salt'] = StringUtils::randomString();154 $data['user_token'] = StringUtils::randomString(32);155 $data['avatar'] = get_gravatar($data['directus_email']);156 $tableGateway->insert([157 'status' => 1,158 'first_name' => 'Admin',159 'last_name' => 'User',160 'email' => $data['directus_email'],161 'password' => $hash,162 'salt' => $data['user_salt'],163 'avatar' => $data['avatar'],164 'group' => 1,165 'token' => $data['user_token'],166 'language' => ArrayUtils::get($data, 'default_language', 'en')167 ]);168 return $data;169 }170 /**171 * Check if the given name is schema template.172 * @param $name173 * @param $directusPath174 * @return bool175 */176 public static function schemaTemplateExists($name, $directusPath)177 {178 $directusPath = rtrim($directusPath, '/');179 $schemaTemplatePath = $directusPath . '/api/migrations/templates/' . $name;180 if (!file_exists($schemaTemplatePath)) {181 return false;182 }183 $isEmpty = count(array_diff(scandir($schemaTemplatePath), ['..', '.'])) > 0 ? false : true;184 if (is_readable($schemaTemplatePath) && !$isEmpty) {185 return true;186 }187 return false;188 }189 /**190 * Install the given schema template name191 *192 * @param $name193 * @param $directusPath194 *195 * @throws \Exception196 */197 public static function installSchema($name, $directusPath)198 {199 $directusPath = rtrim($directusPath, '/');200 $templatePath = $directusPath . '/api/migrations/templates/' . $name;201 $sqlImportPath = $templatePath . '/import.sql';202 if (file_exists($sqlImportPath)) {203 static::installSchemaFromSQL(file_get_contents($sqlImportPath));204 } else {205 static::installSchemaFromMigration($name, $directusPath);206 }207 }208 /**209 * Executes the template migration210 *211 * @param $name212 * @param $directusPath213 *214 * @throws \Exception215 */216 public static function installSchemaFromMigration($name, $directusPath)217 {218 $directusPath = rtrim($directusPath, '/');219 /**220 * Check if configuration files exists221 * @throws \InvalidArgumentException222 */223 static::checkConfigurationFile($directusPath);224 require_once $directusPath . '/api/config.php';225 $config = require $directusPath . '/api/ruckusing.conf.php';226 $dbConfig = getDatabaseConfig([227 'type' => DB_TYPE,228 'host' => DB_HOST,229 'port' => DB_PORT,230 'name' => DB_NAME,231 'user' => DB_USER,232 'pass' => DB_PASSWORD,233 'directory' => 'templates/' . $name,234 'prefix' => '',235 ]);236 $config = array_merge($config, $dbConfig);237 $main = new Ruckusing_Framework($config);238 $main->execute(['', 'db:migrate']);239 }240 /**241 * Execute a sql query string242 *243 * NOTE: This is not recommended at all244 * we are doing this because we are trained pro245 * soon to be deprecated246 *247 * @param $sql248 *249 * @throws \Exception250 */251 public static function installSchemaFromSQL($sql)252 {253 $dbConnection = Bootstrap::get('ZendDb');254 $dbConnection->execute($sql);255 }256 /**257 * Get Directus default settings258 * @param $data259 * @return array260 */261 private static function getDefaultSettings($data)262 {263 return [264 [265 'collection' => 'global',266 'name' => 'cms_user_auto_sign_out',267 'value' => '60'268 ],269 [270 'collection' => 'global',271 'name' => 'project_name',272 'value' => $data['directus_name']273 ],274 [275 'collection' => 'global',276 'name' => 'project_url',277 'value' => get_url()278 ],279 [280 'collection' => 'global',281 'name' => 'rows_per_page',282 'value' => '200'283 ],284 [285 'collection' => 'files',286 'name' => 'thumbnail_quality',287 'value' => '100'288 ],289 [290 'collection' => 'files',291 'name' => 'thumbnail_size',292 'value' => '200'293 ],294 [295 'collection' => 'global',296 'name' => 'cms_thumbnail_url',297 'value' => ''298 ],299 [300 'collection' => 'files',301 'name' => 'file_naming',302 'value' => 'file_id'303 ],304 [305 'collection' => 'files',306 'name' => 'thumbnail_crop_enabled',307 'value' => '1'308 ],309 [310 'collection' => 'files',311 'name' => 'youtube_api_key',312 'value' => ''313 ]314 ];315 }316 /**317 * Check if config and configuration file exists318 * @param $directusPath319 * @throws \Exception320 */321 private static function checkConfigurationFile($directusPath)322 {323 $directusPath = rtrim($directusPath, '/');324 if (!file_exists($directusPath . '/api/config.php')) {325 throw new \Exception('Config file does not exists, run [directus config]');326 }327 if (!file_exists($directusPath . '/api/ruckusing.conf.php')) {328 throw new \Exception('Migration configuration file does not exists');329 }330 }331}...
Model.php
Source:Model.php
...151 $file .= TAB.TAB.'return '.StringUtils::export($this->dates).';'.LF;152 $file .= TAB.'}'.LF.LF;153 }154 // add all relations155 $file .= rtrim($this->relations).LF; // remove one LF from end156 // close the class, remove excess LFs157 $file = rtrim($file).LF.'}'.LF;158 $this->fileContents = $file;159 }160 /**161 * Thirdly, return the created string.162 *163 * @return string164 */165 public function __toString()166 {167 return $this->fileContents;168 }169 /**170 * Detect if we have timestamp field171 * TODO: not sure about this one yet....
TokenTransformations.php
Source:TokenTransformations.php
...125 T_ELSE => function ($content, $state, $word) {126 if(Settings::BRACES_IN_NEW_LINE) {127 $content->newline();128 } else {129 $content->rtrim()->space();130 }131 $content->append($word);132 }, 133 T_TRY => function ($content, $state, $word) {134 $content->newline();135 $content->append($word);136 },137 T_CATCH => function ($content, $state, $word) {138 if(Settings::BRACES_IN_NEW_LINE) {139 $content->newline();140 } else {141 $content->space();142 }143 $content->append($word);144 },145 T_CLASS => function ($content, $state, $word) {146 $content->newline()->append($word)->space();147 },148 T_FUNCTION => function ($content, $state, $word) {149 $content->append($word)->space();150 },151 '{' => function ($content, $state, $word) {152 $content->rtrim();153 if(Settings::BRACES_IN_NEW_LINE) {154 $content->newline();155 } else {156 $content->space();157 }158 $state->indent++;159 $content->append($word)->newline();160 },161 '}' => function ($content, $state, $word) {162 if(Settings::BRACES_IN_NEW_LINE) {163 $content->newline();164 } else {165 $content->space();166 }167 $state->indent--;168 $content->rtrim()->newline()->append($word)->newline();169 },170 '(' => function ($content, $state, $word) {171 $content->openBraces();172 },173 ')' => function ($content, $state, $word) {174 $content->closeBraces();175 },176 ';' => function ($content, $state, $word) {177 $content->rtrim()->append($word)->newline();178 },179 ',' => function ($content, $state, $word) {180 $content->rtrim()->append($word)->space();181 },182 '?' => function ($content, $state, $word) {183 $content->space()->append($word)->space();184 },185 ':' => function ($content, $state, $word) {186 $content->space()->append($word)->space();187 },188 T_OPEN_TAG => 189 function ($content, $state, $word) {190 $state->index = 0;191 if(!$content->isEmpty()) {192 $content->newline();193 }194 $content->append($word)->newline();...
Properties.php
Source:Properties.php
...29use function iterator_to_array;30use function ltrim;31use function mb_strtolower;32use function rand;33use function rtrim;34use function strlen;35use function substr;36use function trim;37class Properties{38 /** @var bool */39 private $caseInsensitive;40 /** @var string */41 private $separator;42 /** @var string|null */43 private $comment;44 /** @var string|null */45 private $escape;46 private $randomPrefix = 0;47 private $randomKey = 0;48 private $map = [];49 private $order = [];50 private $caseMap = [];51 public static function builder(){52 return new PropertiesBuilder();53 }54 public function __construct(iterable $input, bool $caseInsensitive = false, string $separator = "=", ?string $comment = "#", ?string $escape = "\\"){55 $this->caseInsensitive = $caseInsensitive;56 $this->separator = $separator;57 $this->comment = $comment;58 $this->escape = $escape;59 $this->randomPrefix = $comment . rand() . $comment . rand() . "\$";60 foreach($input as $line){61 $trimmed = trim($line);62 if($trimmed === "" || StringUtils::startsWith($trimmed, $comment)){63 $key = $this->makeRandomKey();64 $this->order[] = $key;65 $this->map[$key] = $line;66 continue;67 }68 if($escape === null){69 $parts = explode($separator, $trimmed);70 $left = rtrim($parts[0]);71 $right = isset($parts[1]) ? ltrim($parts[1]) : true;72 }else{73 [$left, $right] = self::separateLine($trimmed, $separator, $escape);74 }75 $left = $this->convertCase($left);76 if(!isset($this->map[$left])){77 $this->map[$left] = [];78 }79 $this->order[] = [$left, count($this->map[$left])];80 $this->map[$left][] = $right;81 }82 }83 private static function separateLine(string $trimmed, string $separator, string $escape){84 assert(strlen($escape) === 1);85 $output = "";86 for($i = 0; $i < strlen($trimmed); $i++){87 $output .= $trimmed{$i};88 if($trimmed{$i} === $escape){89 $i++;90 }91 if(StringUtils::substringAt($trimmed, $separator, $i)){92 return [rtrim(substr($output, 0, -1)), ltrim(substr($trimmed, $i + strlen($separator)))];93 }94 }95 return [$trimmed, true];96 }97 private function makeRandomKey() : string{98 return $this->randomPrefix . ($this->randomKey++);99 }100 private function convertCase(string $string) : string{101 if(!$this->caseInsensitive){102 return $string;103 }104 $lower = mb_strtolower($string);105 if(isset($this->caseMap[$lower])){106 return $this->caseMap[$lower];...
FileUtils.php
Source:FileUtils.php
...93 if ($rootPath === '' || $rootPath === '/') {94 return StringUtils::ensureLeft($s1, '/');95 }9697 return rtrim($rootPath, '/') . StringUtils::ensureLeft($s1, '/');98 }99100 private static function getMimeTypeByExtension(string $fileExt): string101 {102 if (empty($fileExt)) {103 return '';104 }105106 $parser = new Parser();107 $mineTypesFile = __DIR__ . '/mime.types';108 $map1 = $parser->parse($mineTypesFile);109110 foreach ($map1 as $mimeType => $extensions) {111 if (in_array($fileExt, $extensions)) {112 return $mimeType;113 }114 }115116 return '';117 }118119 private static function getRootPath(): string120 {121 if (defined('_ROOT_')) {122 $dir = _ROOT_;123124 if (is_dir($dir)) {125 $dir = str_replace("\\", '/', $dir);126 return $dir === '/' ? $dir : rtrim($dir, '/');127 }128 }129130 $dir = __DIR__;131132 if (!is_dir($dir)) {133 return '';134 }135136 while (true) {137 $dir = str_replace("\\", '/', $dir);138139 if ($dir !== '/') {140 $dir = trim($dir, '/');141 }142143 if (StringUtils::endsWith($dir, '/vendor')) {144 break;145 }146147 $dir = realpath("$dir/../");148149 if (!is_string($dir) || $dir === '' || !is_dir($dir)) {150 return '';151 }152 }153154 $dir = str_replace("\\", '/', $dir);155156 if ($dir !== '/') {157 $dir = trim($dir, '/');158 }159160 $dir = realpath("$dir/../");161162 if (!is_string($dir) || $dir === '' || !is_dir($dir)) {163 return '';164 }165166 $dir = str_replace("\\", '/', $dir);167 return $dir === '/' ? $dir : rtrim($dir, '/');168 }169}
...
ExecuteTimeLogMiddleware.php
Source:ExecuteTimeLogMiddleware.php
...56 $n1 = $n1 < 1 ? 1 : $n1;57 return "{$n1}ms";58 }59 $n1 = bcdiv($n1, 1000, 6);60 $n1 = rtrim($n1, '0');61 $n1 = rtrim($n1, '.');62 return "{$n1}s";63 }64}...
Content.php
Source:Content.php
...53 }54 public function isEmpty() {55 return empty($this->content);56 }57 public function rtrim() {58 $this->content = rtrim($this->content);59 return $this;60 }61 public function getContent() {62 return $this->content;63 }64}65?>...
rtrim
Using AI Code Generation
1require_once 'StringUtils.class.php';2echo StringUtils::rtrim("This is a string");3require_once 'StringUtils.class.php';4echo StringUtils::ltrim("This is a string");5require_once 'StringUtils.class.php';6echo StringUtils::trim("This is a string");7require_once 'StringUtils.class.php';8print_r(StringUtils::split("This is a string"));9require_once 'StringUtils.class.php';10echo StringUtils::replace("This is a string", "is", "was");11require_once 'StringUtils.class.php';12echo StringUtils::replace("This is a string", "is", "was");13require_once 'StringUtils.class.php';14echo StringUtils::replace("This is a string", "is", "was");15require_once 'StringUtils.class.php';16echo StringUtils::replace("This is a string", "is", "was");17require_once 'StringUtils.class.php';18echo StringUtils::replace("This is a string", "is", "was");19require_once 'StringUtils.class.php';20echo StringUtils::replace("This is a string", "is", "was");21require_once 'StringUtils.class.php';22echo StringUtils::replace("This is a string", "is", "was");23require_once 'StringUtils.class.php';24echo StringUtils::replace("This is a string", "is", "was");25require_once 'StringUtils.class.php';26echo StringUtils::replace("This is a string", "is", "was");
rtrim
Using AI Code Generation
1require_once 'StringUtils.php';2echo StringUtils::rtrim(" Hello World! ");3class StringUtils{4 public static function rtrim($str){5 return rtrim($str);6 }7}
rtrim
Using AI Code Generation
1includ 'StringUtils.php';2$str = 'Hello World';3echo StringUtils::rtrim($str);4$str = 'Hello World';5echo rtrim($str);6require_once 'StringUtils.class.php';7echo StringUtils::trim("This is a string");8require_once 'StringUtils.class.php';9print_r(StringUtils::split("This is a string"));10require_once 'StringUtils.class.php';11echo StringUtils::replace("This is a string", "is", "was");12require_once 'StringUtils.class.php';13echo StringUtils::replace("This is a string", "is", "was");14require_once 'StringUtils.class.php';15echo StringUtils::replace("This is a string", "is", "was");16require_once 'StringUtils.class.php';17echo StringUtils::replace("This is a string", "is", "was");18require_once 'StringUtils.class.php';19echo StringUtils::replace("This is a string", "is", "was");20require_once 'StringUtils.class.php';21echo StringUtils::replace("This is a string", "is", "was");22require_once 'StringUtils.class.php';23echo StringUtils::replace("This is a string", "is", "was");24require_once 'StringUtils.class.php';25echo StringUtils::replace("This is a string", "is", "was");26require_once 'StringUtils.class.php';27echo StringUtils::replace("This is a string", "is", "was");
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Execute automation tests with rtrim on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.
Test now for FreeGet 100 minutes of automation test minutes FREE!!