• 0

[PHP] Split text after a certain character


Question

19 answers to this question

Recommended Posts

  • 0
  Kudos said:

What? I'm not sure i understand what you are asking but:

unset($text);

If that's not what you want then try explaining it better

Ok, well i want it to do the following:

Say i have the following: "The Price is ?500"

i want it to do the following..

Variable 1 = "The Price is"

Variable 2 = "?500"

Thanks,

MiG

  • 0

An easier way of doing what PRSBOY posted would be something like this;

<?php
$text = "The Price is ?500";
list($text, $price) = explode("?", $text);

echo $text . "?" . $price;
?>

EDIT: Is there any function that splits a string into two or more parts without removing the character it splits on?

  • 0
<?
	$originalstring = "The Price is ?500";
	$delimiter = "?";
	if(strpos($originalstring,$delimiter) > 0){
		$outarray = explode($delimiter,$originalstring);
		$variable1 = $outarray[0];
		$variable2 = "?".$outarray[1];
	}
?>

  • 0
  Login_Here said:

An easier way of doing what PRSBOY posted would be something like this;

<?php
$text = "The Price is ?500";
list($text, $price) = explode("?", $text);

echo $text . "?" . $price;
?>

EDIT: Is there any function that splits a string into two or more parts without removing the character it splits on?

not that i know of

  • 0
  njlouch said:

<?
	$originalstring = "The Price is ?500";
	$delimiter = "?";
	if(strpos($originalstring,$delimiter) > 0){
		$outarray = explode($delimiter,$originalstring);
		$variable1 = $outarray[0];
		$variable2 = "?".$outarray[1];
	}
?>

That works fine, except i think its trying to put a symbol in variable1, since at the end of the text i get a diamond with a question mark in it, as if it is trying to put a ? sign in there..

any ideas?

MiG

  • 0

Hate to say it, but well said Kudos

<?
	$originalstring = "The Price is ?500";
	$delimiter = "?";
	if(strpos($originalstring,$delimiter) > 0){
		$outarray = explode($delimiter,$originalstring);
		$variable1 = $outarray[0];
		$variable2 = "£".$outarray[1];
	}
?>

  • 0
  Kudos said:

https://www.neowin.net/forum/index.php?showtopic=475756

Are you thick?

I hate being rude about it, but jesus christ, it was only a couple of days ago.

that was for a different thing, and since i posted there saying i wanted some help splitting it and nobody replied, i thought i'd try some things, give it a few days, and then reply back...

DUDE, if im so god damn thick, why the **** can you explain why it is displaying that diamond mark, after i did a Str_replace on the variable, to replace "?", with " ", meaning effectively it would take away the nagging diamond, which it didnt..

SO, if you cant help me rectify my problem then get out..

And to Njlouch ?, i'm running XAMMP web server locally, which is basically Apache, PHP and SQL in one bundle..

  • 0
  MiG- said:

that was for a different thing, and since i posted there saying i wanted some help splitting it and nobody replied, i thought i'd try some things, give it a few days, and then reply back...

DUDE, if im so god damn thick, why the **** can you explain why it is displaying that diamond mark, after i did a Str_replace on the variable, to replace "?", with " ", meaning effectively it would take away the nagging diamond, which it didnt..

SO, if you cant help me rectify my problem then get out..

And to Njlouch ?, i'm running XAMMP web server locally, which is basically Apache, PHP and SQL in one bundle..

Try just downloading and installing PHP, Apache and MySql seperately, and configuring them. That way you end up with a 'proper' install that you know is configured properly, and not to someone elses requirements.

  • 0
  MiG- said:

that was for a different thing, and since i posted there saying i wanted some help splitting it and nobody replied, i thought i'd try some things, give it a few days, and then reply back...

It doesn't matter what it was for, the answer is still there.

  MiG- said:

DUDE, if im so god damn thick, why the **** can you explain why it is displaying that diamond mark, after i did a Str_replace on the variable, to replace "?", with " ", meaning effectively it would take away the nagging diamond, which it didnt..

I'm going to answer the first part of that question by answering the second part. It's almost certainly your character encoding, you have the following at the top of your listed website

<?xml version='1.0' encoding='iso-8859-1' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">;html xmlns="http://www.w3.org/1999/xhtml">

Try playing with that a bit and read this. Check that your database encoding matches the encoding you're putting in your header too (yes, it actually does something).

  • 0
  Kudos said:

It doesn't matter what it was for, the answer is still there.

I'm going to answer the first part of that question by answering the second part. It's almost certainly your character encoding, you have the following at the top of your listed website

<?xml version='1.0' encoding='iso-8859-1' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">;html xmlns="http://www.w3.org/1999/xhtml">

Try playing with that a bit and read this. Check that your database encoding matches the encoding you're putting in your header too (yes, it actually does something).

i have the encoding thing sorted but i'll take a look at that link, not expecting much from it though. :(

  • 0
  Login_Here said:

An easier way of doing what PRSBOY posted would be something like this;

<?php
$text = "The Price is ?500";
list($text, $price) = explode("?", $text);

echo $text . "?" . $price;
?>

EDIT: Is there any function that splits a string into two or more parts without removing the character it splits on?

The function preg_split can,

$text = "The Price is ?500";
$result = preg_split( '/(?\d{1,})/', $text, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
print_r($result);

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Windows 11 blocks Google Chrome due to a Microsoft safety feature, fix out by Sayan Sen Microsoft has a parental control and safety feature called "Microsoft Family Safety" which allows users to create safe spaces for their family members for browsing the web by setting up filters so as to block and filter inappropriate content and limit browsing to kid-friendly and family friendly content. However, as it turns out, following Chrome version updates 137.0.7151.68, 137.0.7151.69, Google's web browser is getting automatically blocked by Microsoft Family Safety as affected users have reported that the browser will automatically close or crash and then fail to reopen. Thus if you are using Edge, you get the green signal from the Family Safety app, but not if you are using Google Chrome. The issue seems to be affecting mainly Windows 11 devices but Windows 10 or macOS may be affected too. A thread on Microsoft's official Windows forum by Peter Priestley1, which is presumably from an educational institute, says: The thread has been upvoted by 122 people at the time of writing. There are plenty of other such threads online and users also say that they have tried all sorts of things like refreshing cookies and appdata but "nothing" seems to fix it. This shows that Microsoft's safety feature is certainly robust and that it is not easy to bypass but it also means affected users are not too happy about it considering it is seemingly blocking all versions of Chrome. There is one fix that worked though, renaming chrome.exe to something else like chrome1.exe for example. A Chrome community manager, Ellen T, has confirmed that the Microsoft feature is indeed what is causing it and the only way to fix the issue is to "unblock Chrome" inside the Family Safety app. Ellen says: Microsoft has also shared a similar guidance on the issue according to Fred SR., a senior member of the Chrome community.
    • Typical Microsoft... Go half way and then lazily stop. As if adding all the other directional options would have been so difficult...
    • Some of these robots are getting pretty human-like, but obviously stronger and more bendy. Weight and balance is probably a big hurdle because of all the batteries they have to pack in them, but it'll continue to improve. I'm guessing these companies foresee a future where every household has a robot slave...I mean, assistant.
    • You can do that right now, so what stops you? Nobody forbids you from installing Windows 10 on your PC.
  • Recent Achievements

    • Week One Done
      Helen Shafer earned a badge
      Week One Done
    • First Post
      emptyother earned a badge
      First Post
    • Week One Done
      Crunchy6 earned a badge
      Week One Done
    • One Month Later
      KynanSEIT earned a badge
      One Month Later
    • One Month Later
      gowtham07 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      660
    2. 2
      ATLien_0
      270
    3. 3
      Michael Scrip
      218
    4. 4
      Steven P.
      162
    5. 5
      +FloatingFatMan
      159
  • Tell a friend

    Love Neowin? Tell a friend!