2013-08-01 40 views
1

我想分割一个变量,我调用$ NowPlaying包含当前歌曲的结果。我现在想分享以下内容 - 所以我得到两个包含$ artist
$ title的新变量。已经搜查,并试图找到一个解决方案,但有一点点帮助停滞不前感谢,并帮助Php将字符串分割为字符串

+4

你能展示一个变量的例子吗?有几种不同的方式来分割它,但它取决于分隔符。 – aynber

+2

你有什么尝试?另外,这个问题没有足够的信息来正确回答。什么是你的输入变量的类型?字符串,数组? –

+0

感谢它的作品:D –

回答

5
<?php 
// Assuming $NowPlaying is something like "J. Cole - Chaining Day" 
// $array = explode("-", $NowPlaying); //enter a delimiter here, - is the example 
$array = explode(" - ", $NowPlaying); //DJHell pointed out this is better 
$artist = $array[0]; // J. Cole 
$song = $array[1]; // Chaining Day 
// Problems will arise if the delimiter is simply (-), if it is used in either 
// the song or artist name.. ie ("Jay-Z - 99 Problems") so I advise against 
// using - as the delimiter. You may be better off with :.: or some other string 
?> 
+2

爆炸有一个错误的语法 – Brian

+0

@ASRoma好眼睛修复它 – XaxD

+1

如果你使用“ - ”来爆炸var而不是“ - ”,你不必修剪结果,它是多一点安全(即:用“Jay-Z”)。希望这有助于;) –

1

使用phpexplode()功能

$str_array = explode(' - ', $you_song); 
// then you can get the variables you want from the array 
$artist = $str_array[index_of_artist_in_array]; 
$title = $str_array[index_of_title_in_array]; 
-1

list()是为了这个目的而制作的。

<?php 
    list($artist, $title) = explode(' - ', $NowPlaying); 
?> 

http://php.net/manual/en/function.list.php

+1

这是不正确的。你使用数组而不是字符串。 –

+0

否...列表会根据您发布的链接进行操作。 – Paulpro

+0

是的 - 我不应该撇开原来的问题。现在修复它。 –

0

我通常会做一些这样的事:

<?php  
$input = 'Your - String'; 
$separator = ' - '; 
$first_part = substr($input, 0, strpos($input, $separator)); 
$second_part = substr($input, (strpos($input, $separator) + strlen($separator)), strlen($input)); 
?> 

我看过一对夫妇将字符串分割的问题,没有人建议使用PHP的字符串函数。是否有一个原因?