How to exchange numbers in string? [closed] - php

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
can you please help me with finding right function for exchanging numbers in string? Numbers are separated with ":".
For example
"2:0" to "0:2"
"101:50" to "50:101"
Thank you.

There are many ways to do it, you can try the any of the ways here.
<?php
//using regex
$re = '/(\d+):(\d+)/i';
$str = '50:101';
$subst = '$2:$1';
$result = preg_replace($re, $subst, $str);
echo "The string $str after exchange is ".$result;
echo PHP_EOL;
// concatenating parts after explode
$parts = explode(':',$str);
echo "The string $str after exchange is $parts[1]:$parts[0]";
echo PHP_EOL;
//using explode, array_reverse and implode
$str = '50:101';
$result = implode(':', array_reverse(explode(':',$str)));
echo "The string $str after exchange is ".$result;
?>
DEMO: https://3v4l.org/OkY18

Simply explode() the string and then reform it.
$str = '100:200';
$bits = explode(':',$str);
echo $bits[1] . ':' . $bits[0];
RESULT
200:100

Related

Replace a string starting with a character [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I would like to replace a user input with my own string, with the user's inputted message only having a known start character.
The user enters their input "#userinput" which will then change to
userinput
Any help would be greatly appreciated, my attempts can be seen below.
My attempts.
Code:
preg_match('#(?>\#)(\w*)#', $string, $matches);
foreach($matches as $row){
$string = preg_replace('#(?>\#)(\w*)#', ' '. $row . "", $string);
}
OTHER ATTEMPT
$string = preg_replace('#\#(.*)#', '<b><a href="=$1"=> #$1 </a></b>', $string);
You probably want to exclude space and #:
$string = preg_replace('##([^\s#]+)#', '<b> #$1 </b>', $string);
Try this
$atPosition = stripos($string, '#');
$substr = '';
if (stripos($string, '#') !== false) {
$substr = substr($string, $atPosition + 1);
$content = '<b> '.$substr.' </b>';
}
echo $content;

how to make a string like " abcde fghijk " into " *abcde* *fghijk* " in php? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I have a string eg abcde fghijk and am trying to convert it into *abcdef* *fghijk*and another thing is that it should work for any value that can be entered in place of abcde fghijk
I suppose this is pretty much what you're expecting:
$str = ' abcde fghijk ';
$str = preg_replace('/(\w+)/', '*$1*', $str);
echo $str;
<?php
$string = 'abcde fghijk lmnopq';
$array = explode(' ', $string);
$array = array_map(function($v){return "*".$v."*";}, $array);
$string = implode(' ', $array);
var_dump($string);
result:
kris-roofe#krisroofe-Rev-station:~$ php cal.php
string(25) "*abcde* *fghijk* *lmnopq*"
http://php.net/manual/fr/function.str-replace.php
$value = str_replace("abcde", "*abcde*", " abcde fghijk ");
$value = str_replace("fghijk", "*fghijk*", $value);

How can i variable add new charcter another string? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
Hi guy can you help me i have problem sometimes variable.
<?php
$ns = "test";
echo $ns;
print test but I don't want this.
output
t:e:s:t
please help?
Use chunk_split()
chunk_split() function splits the function.
In our case, it splits by every 1 character.
And adds a new character :.
We do not need last : character so, we are using rtrim().
<?php
$ns = "test";
$n = chunk_split($ns, 1, ':');
echo rtrim($n, ":");
?>
Demo
Please try below code :
$ns = "test";
$array = str_split($ns);
echo implode(":", $array);
<?php $ns = "test";
echo substr(chunk_split($ns, 1, ':'), 0, -1);
?>

How to Delete Last Word of variable in php [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
How to last word from our Variable for example
$name = "Salman Khan";
And I want ans in only because i want tp remove n in my string
$words = explode(' ',$name); // Break words into array
$noofwords = count($words); // Find out how many
unset($words[$noofwords-1]); // remove the last one (-1 because of zero-index)
$newstring = implode(' ',$words); //put back together
$newstring = substr($name, 0, strlen($name)-1);
Do you mean remove the last letter?
echo substr($name, 0, -1);
Or the last word?
echo explode(' ', $name)[0];
echo rtrim($name,"n");
OR
echo substr($name,0,-1);
OR
echo substr($name,0,strlen($name)-1);
Output
salman kha
Try out this one.
$name = 'salman khan';
$length = strlen($name);
$char = $name[$length-1];
echo rtrim($name,$char);

Using PHP how do I test a string for a pattern then alter it? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
In PHP given this string:
$string = '/sometext?123#abc/moretext';
How can I test for the existence of the pattern "?123#abc/" which will always be enclosed by "?" and "/" but have varying inner-text that may include any text and symbols? The text outside of the pattern will also be different. I need to do this:
if ($string includes pattern ?*/) {
//load the inner value into a variable
//then remove the entire patern including the leading "?" and trailing "/" and replace with a single "/"
}
How do I do this?
<?php
$string = '/sometext?123#abc/moretext';
$pattern = '/\\?(.*?)\\//';
if( $pieces = preg_split($pattern, $string, Null, PREG_SPLIT_DELIM_CAPTURE)) {
echo($pieces[1] . "\n");
unset($pieces[1]);
echo(implode("/", $pieces) . "\n");
}
?>
--output:--
~/php_programs$ php 1.php
123#abc
/sometext/moretext
Try this
$s = '/sometext?123#abc/moretext';
$matches = array();
$t = preg_match('#\?(.*?)\/#s', $s, $matches);
if($matches[1])
echo "match";
else
echo "not";
Output
match
Codepad

Categories