Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos bom dia
estou percebendo um mal funcionamento em um Foreach mas como ele não apresenta erro não estou conseguindo localizar a lógica do problema
vamos pelo array primeiro que chamo de $res
Array
(
[0] => Array
(
[item1] => 7762839492237333716
[item1] => dados
[item3] => [http://google.com](http://google.com)
[urls] => [http://google.com](http://google.com).br
[data] => terça-feira, 6 de maio de 2014
)
[1] => Array
(
[item1] => 2850270816776548847
[item2] => dados
[item3] => http://yahoo.com.br'>[http://yahoo.com](http://yahoo.com).br
[urls] => [http://yahoo.com](http://yahoo.com)
[data] => terça-feira, 6 de maio de 2014
)
)
com ele pego os dados jogo em um foreach pra armazena-los em uma variavel $sql para depois gravar no banco
o foreach é o seguinte:
foreach ($res as $result) {
$serial = $result['item1'];
$titulo = $result['item2'];
$link_l = $result['item3'];
$link_2 = $result['urls'];
$post = 'blablabla.';
$status = '1';
$data = $result['data'];
//data atual
$now = date("Y-m-d H:i:s");
$url = 'http://localhost/submit_url.php';
//estes seriam os "inputs" do formulário
$campos = array('url' => urlencode($link_2),
'code' => urlencode("5138679238058982"),);
//temos que colocar os parâmetros do post no estilo de uma query string
foreach($campos as $name => $valor) {
$string_campos .= $name . '=' . $valor . '&';
}
$string_campos = rtrim($string_campos,'&');
$ch = curl_init();
//configurando as opções da conexão curl
curl_setopt($ch,CURLOPT_URL,$url);
//este parâmetro diz que queremos resgatar o retorno da requisição
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_POST,count($campos));
curl_setopt($ch,CURLOPT_POSTFIELDS,$string_campos);
//manda a requisição post
$lnk = curl_exec($ch);
curl_close($ch);
$link_c = strip_tags($lnk);
em seguida como mencionado ainda dentro deste foreach vou alocando os dados aqui
$sql .= "('$serial','$titulo','$link_l','$link_c','$post','$status','$now','$data'),";
e tudo é gravado no mysql funciona perfeitamente porém na linha do foreach que tem esse código:
$campos = array('url' => urlencode($link_2),
ele deveria pegar todos os valores da key um a um de cada array começando pelo primerio passando segundo e assim como deveria ser e gerar um outro link em tese funciona pois os links armazenados na variável $link_c são todos diferentes porém percebi que todo se referem apenas a key do primeiro array apenas ou seja se houverem 5 arrays com 5 links como google, yahoo, aol, ig e msn ele gera 5 novos mas todos com base no google e ignora as outras ocorrências
por aluma razão que não consegui compreender ele não passa para o próximo valor da key do array abaixo ele fixa no primeiro e nada que eu fiz até agora fez com que ele pega-se os valores da key do arrays abaixo dele
não estou entendendo esse mal funcionamento do foreach ou minha lógica pois com as outras keys ele faz o serviço sem problemas...
Carregando comentários...