PHP: текст взорваться () проблема - PullRequest
3 голосов
/ 01 марта 2011

У меня проблема с функцией explode ().Я использую функцию, чтобы взорвать строки, такие как «Имя: Реплика», но иногда в строке есть 2 или более двоеточий («:»), и возникает проблема, потому что мой скрипт:replica3"

$explode = explode(":", $string);
$query = "INSERT INTO `table` (`field_1`, `field_2`) VALUES ('".$explode[0]."', '".$explode[1]."')";

И мне нужно любое решение для этой проблемы.Потому что когда я разделяю строку после первого двоеточия (":"), вторая часть должна быть последней.

С уважением, Джордж!

Ps - Извините за мой английский.

Ответы [ 3 ]

6 голосов
/ 01 марта 2011

Я думаю, что вы хотите использовать аргумент 'limit' (третий) для explode():

list($attribute, $value) = explode(":", $string, 2);

Это позволит вам получить только два результата.http://php.net/manual/en/function.explode.php

2 голосов
/ 01 марта 2011

Используйте необязательный третий параметр $limit для explode():

$explode = explode(":", $string, 2);

Это говорит explode(), что нужно возвращать массив максимум с 2 элементами, помещая все последующие двоеточия во второй возвращенный фрагмент строки,Обратите внимание, в соответствии с вашими примерами вы должны использовать двоеточие и пробел:

$explode = explode(": ", $string, 2);

Но, возможно, это просто совпадение.

1 голос
/ 01 марта 2011

отредактировано в соответствии с предложением @Jon Nalley.Обратите внимание, что limit (3-й параметр) поддерживается только PHP 5.x

list($attribute, $value) = explode(":", $string, 2);
...