Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Perguntando o curso para o usuário no terminal

incrementando um pouco mais o código do final do módulo 3, inseri uma chamada no terminal para o usuário inserir o nome do curso da busca na página da Alura, porém a chamada acaba não retornando nada mais, alguém sabe como seria a maneira correta de fazer isso?

código contendo o erro mencionadona linha 24 é pedido a entrada do nome da técnologia a ser buscada, na linha 27 é a chamada da busca, na linha 39 crio e dou o nome do arquivo que vai ser criado com os nomes dos cursos e na linha 40 ele pega o array criado com os nomes dos cursos e cria um arquivo txt.

o erro aparece quando pego a entrada do usuário na linha 24, se fizer escrevendo direto na linha 27 e na 39 o programa funciona.

1 resposta
solução!

Olá, Victor!

Parabéns por incrementar mais no código!

Eu consegui implementar da seguinte maneira:

<?php

require 'vendor/autoload.php';

use Alura\BuscadorDeCursos\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client([
    'base_uri' => 'https://www.alura.com.br/',
    'verify' => false
]);
$crawler = new Crawler();


$nomeTec = readline('Escreva o curso da busca:');



$buscardor = new Buscador($client, $crawler);
$cursos = $buscardor->buscar("/cursos-online-programacao/$nomeTec");

foreach ($cursos as $curso) {
    echo $curso . PHP_EOL;
}

Uma das coisas que fiz de diferente, foi utilizar o readline ao invés do fgets(STDIN):

  • readline: Função interativa que lê uma linha da entrada do usuário e retorna a string de entrada sem o caractere de quebra de linha.

  • fgets(STDIN): Função simples que lê uma linha da entrada padrão e retorna a string de entrada incluindo o caractere de quebra de linha.

Talvez este caractere de quebra de linha que estava quebrando o seu código.

Espero ter ajudado e bons estudos :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software