Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

red_foot

[Resolvido] Erro: Warning: split() expects parameter 2 to be stri

Recommended Posts

Pessoal boa noite

 

É o seguinte.

Estou queimando a cabeça aqui faz alguns dias já. Já pesquisei na web,inclusive aqui no forum mesmo já revirei e tentei inúmeras dicas encontradas aqui, já tentei inumeras outras formas de conversão no lugar desta porém tudo em vão.

 

Estou com o seguinte erro:

 

Warning: split() expects parameter 2 to be string, array given in /home2/site/public_html/includes/funcoes.php on line 124, na página onde chamo a função.

 

na funcoes.php na função tenho:

 

122 function convertData ($data) {

123

124 $dataN = split("/", $data);

125

126 $dataN = mktime(00,00,00, $data[1], $data[0], $data[2]);

127

128 return $dataN;

129

130 }

 

Alguém poderia dar uma luz ai para eu tentar achar onde está o erro? Fico agradecido d+ pessoal.

 

Abrçs

Fabiano Gois

Compartilhar este post


Link para o post
Compartilhar em outros sites

O slip separa strings em array utilizando expressões regulares.

 

No seu caso, experimente utilizar o explode()

 

Já tentei e o erro persiste.

 

Warning: explode() expects parameter 2 to be string, array given in /home2/site/public_html/includes/funcoes.php on line 124

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, vamos ler o manual assim como o erro apresentado?

 

split() quebra uma string com base em uma Expressão Regular, porém o seu uso é desencorajado pois est´[a depreciada no PHP 5.3 e superior, sendo melhor substituída por preg_split()

 

explode() também quebra uma string em pedaços menores porém sem usar Expressões Regulares.

 

Agora, o interpretador está te dando a resposta de bandeja:

 

Warning: split() expects parameter 2 to be string' date=' array given in /home2/site/public_html/includes/funcoes.php on line 124[/quote']

Se sua linha 124 é:

 

$dataN = split("/", $data);

Então $data é um array.

 

Com um var_dump(), você vê o quê que esse array tem:

 

var_dump( $data );

E, assim, consertar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, vamos ler o manual assim como o erro apresentado?

 

split() quebra uma string com base em uma Expressão Regular, porém o seu uso é desencorajado pois est´[a depreciada no PHP 5.3 e superior, sendo melhor substituída por preg_split()

 

explode() também quebra uma string em pedaços menores porém sem usar Expressões Regulares.

 

Agora, o interpretador está te dando a resposta de bandeja:

 

 

Se sua linha 124 é:

 

$dataN = split("/", $data);

Então $data é um array.

 

Com um var_dump(), você vê o quê que esse array tem:

 

var_dump( $data );

E, assim, consertar.

 

Td bem bruno entendi mas sou iniciante em php desculpe minha ignorância.

 

Fiz o que você falou e obtive o seguinte:

 

array(3) { [0]=> string(2) "18" [1]=> string(2) "06" [2]=> string(4) "2012" } Warning: explode() expects parameter 2 to be string, array given in /home2/site/public_html/includes/funcoes.php on line 124

 

ou seja a data está correta.

 

o que deve ser feito para a correção do erro?

 

e mais uma vez desculpe a ignorancia. Sou programador porém em php sou bem iniciante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu dado de entrada já é um array, logo você não precisa quebrá-lo novamente.

 

Uma das diversas possíveis soluções é você verificar se o dado de entrada é um array ou não e, em sendo uma string, só quebrar se puder encontrar as barras:

 

<?php

function convertDate( $date ) {

   if( is_array( $date ) ) {

       list( $d, $m, $y ) = $date;

   } else {

       if( strpos( $date, '/' ) !== FALSE ) {

           list( $d, $m, $y ) = explode( '/', $date );
       }

       // Keep coding ;)
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.