php – Por que se agrega un slash al final con url relativas

como puedo quitar el slash al final de la url, resulta ser que tengo mis enlaces de la siguiente forma

<a href="../contacto" class="nav-link">CONTACTO</a>

Pero al hacer clic en el enlace la ruta figura asi, con un slash al final

http://localhost/ecuservicechile/contacto/

asp.net core – Convertir un parrafo bs64 a string y leerlo linea por linea en C# .Net

Estoy tratando de convertir un texto en BASE64 a String , cuando se realice la conversión se debe leer este párrafo y separarlo linea por linea.

La conversion del parrafo a String ya la tengo y lo hago de la siguiente manera:

private string Base64ToString(string base64String)
{
    byte() data = Convert.FromBase64String(base64String);
    string decodedString = Encoding.UTF8.GetString(data);
    return decodedString;
}

Este me devuelve el siguiente String y este es el que tengo que leer linea por linea:

120210218007000009001562642PRUEBA A.P.S. S.A.                                                                            
500000003182120773010100                                                                                                
6900838458       EUREKA GUAVIARE 000010078611837396     20210202000001860000000000036400001130000001                    
637239274        ARACELY QUINTERO000010078611849457     20210102000001860000000000113600001130000002                    
621672001        MARIA ROSMIRA GO000010078611437021     20210202000001860000000000113600001130000003                    
637800499        RAQUEL MEJIA DE 000010078611291574     20210102000001860000000000113600001130000004                    
670722724        JOSE HERNAN RAMI000010078611312622     20210202000001860000000000113600001130000005                    
652871276        NINI YOHANA VARO000010078611852353     20210102000001860000000000161300001130000006                    
6474084          PEDRO ANTONIO MO000010078611550549     20210102000001860000000000113600001130000007                    
621953789        MARIA YOLANDA CA000010078611375911     20210202000001860000000000113600001130000008                    
624322185        MARIA ARSENIA VA000010078611557697     20210102000001860000000000113600001130000009                    
61037322825      JUAN GUILLERMO H000010078611839077     20210202000001860000000000113600001130000010                    
693290752        ARTEMO JIMENEZ J000010078611375693     20210202000001860000000000113600001531000011                    
61042774280      CARLOS ARLEY OSO000010078611851292     20210102000001860000000000113600001531000012                    
6900101681       FUNDACION SOCIAL000010078611837963     20210202000001860000000000113600001531000013                    
612616960        LUIS EDUARDO FAN000010078611847568     20210102000001860000000000113600001531000014                    
613702117        HERNAN ALONSO GO000010078611498574     20210202000001860000000000113600001531000015                    
623779639        MARIA SONIA HERN000010078611838853     20210202000001860000000000128800001531000016                    
691510572        JOSE DAVID NIGRI000010078611840872     20210102000001860000000000113600001631000017                    
8000017000017000000000191690000 

He intentado lo siguiente, para leer el texto linea por linea, pero no se el por que no realiza la separación:

En la variable lstBs64 llega el texto en BS64:

 string() lineas = Base64ToString(lstBs64).Split(Environment.NewLine);

Como pueden ver tengo un método Base64ToString el cual convierte el string Bs64 a string y a la vez trato de separarlo linea por linea con Split(Environment.NewLine) pero no funciona.

Quisiera saber si hay otra forma y que estoy haciendo mal.

Gracias.

javascript – ¿Por que me solo me funciona la primera vez el console.log?

Estoy tratando de saber si estoy llegando a un archivo, lo extraño es lo siguiente:

La primera vez que creo el archivo, pongo la ruta, guardo y ejecuto la página me aparece el console.log con el mensaje, ahí todo bien. Luego cambio el mensaje para confirmar la llegada, guardo y ejecuto y me sigue apareciendo el mensaje anterior.

¿A alguien más le a pasado?
¿A que se deberá?

javascript – Verificar se uma string é composta apenas por ”0” e ”1”

Eu quero verificar, por exemplo, se a string ‘01001011’ é composta apenas de ‘0’ e ‘1’.

Estou criando um projeto html para converter binários em decimal, e quero criar uma função que confira se o valor digitado no input seja uma combinação binária, caso contrário, o usuário terá que digitar outro valor. Após isso, ao pressionar ‘Enter’ a conversão será feita.

<input type="text" id="b-input" onkeypress="convert()">
function convert() {
    const binary = document.getElementById('b-input').value;
    if (binary === '') return alert("Please, enter a binary number");
}
document.getElementById('b-input').onkeypress = function(e) {
    if (e.code == 'Enter') {
        convert();
    } 
}

Por enquanto só consegui verificar se a string é vazia, e criar a função que converte ao pressionar ‘Enter’.

html – No php não estou a conseguir pôr este código a funcionar

assim que o cliente clica no submit ele deveria criar um cod_Pedido para adicionar os pratos no mysql,o problema é que adiciona um numero qualquer e nem identifica o submit.

              <div class="row">
                 <div class="col-lg-12 col-sm-12 col-xs-12">
                    <div class="contact-block">
                        <form id="EncomendarForm" method="GET" action="Pedido.php">
                            <div class="row">
                                <div class="col-md-6">
                                    <h3>Prato e Nº Pessoas</h3>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control" name="Cod_Prato1" id="Cod_Prato" data-error="Insira as Entradas">
                                              <option disabled selected >Insira as Entradas*</option>
                                              <?php
                                              $prato="SELECT * From prato where tipo_prato='1'";
                                               $result=mysqli_query($ligax,$prato);
                                               $nregistos=mysqli_num_rows($result);
                                                $nome_prato=$registo('nome_prato');
                                                $Cod_Prato=$registo('Cod_Prato');
                                                
                                                for ($i=0; $i<$nregistos;$i++){
                                                $registo=mysqli_fetch_assoc($result);
                                                 echo "<option value='$Cod_Prato'>".$registo('nome_prato')."</option>";
                                              }
                                              ?>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control" name="Cod_Prato2" id="Cod_Prato" data-error="Insira as Sopas">
                                              <option disabled selected >Insira a Sopa*</option>
                                               <?php
                                              $prato="SELECT * From prato where tipo_prato='2'";
                                               $result=mysqli_query($ligax,$prato);
                                               $nregistos=mysqli_num_rows($result);
                                                $nome_prato=$registo('nome_prato');
                                                $Cod_Prato=$registo('Cod_Prato');
                                                
                                                for ($i=0; $i<$nregistos;$i++){
                                                $registo=mysqli_fetch_assoc($result);
                                                 echo "<option value='$Cod_Prato'>".$registo('nome_prato')."</option>";
                                              }
                                              ?>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div>                                  
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control" name="Cod_Prato3" id="Cod_Prato" data-error="Insira o Prato Principal">
                                            <option disabled selected >Insira o Prato Principal*</option>
                                               <?php
                                              $prato="SELECT * From prato where tipo_prato='3'";
                                               $result=mysqli_query($ligax,$prato);
                                               $nregistos=mysqli_num_rows($result);
                                                $nome_prato=$registo('nome_prato');
                                                $Cod_Prato=$registo('Cod_Prato'); 
                                                
                                                for ($i=0; $i<$nregistos;$i++){
                                                $registo=mysqli_fetch_assoc($result);
                                                 echo "<option value='$Cod_Prato'>".$registo('nome_prato')."</option>";
                                              }
                                              ?>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div>                                 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control" name="Cod_Prato4" id="Cod_Prato" data-error="Insira as Sobremesas">
                                              <option disabled selected >Insira a Sobremesa*</option>
                                             <?php
                                                $prato="SELECT * From prato where tipo_prato='4'";
                                                $result=mysqli_query($ligax,$prato);
                                                $nregistos=mysqli_num_rows($result);
                                                $nome_prato=$registo('nome_prato');
                                                $Cod_Prato=$registo('Cod_Prato');
                                                
                                                for ($i=0; $i<$nregistos;$i++){
                                                    $registo=mysqli_fetch_assoc($result);
                                                    echo "<option value='$Cod_Prato'>".$registo('nome_prato')."</option>";
                                                }
                                              ?>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control" name="Cod_Prato5" id="Cod_Prato" data-error="Insira as Bebidas">
                                              <option disabled selected >Insira as Bebidas*</option>
                                             <?php
                                                $prato="SELECT * From prato where tipo_prato='5'";
                                                $result=mysqli_query($ligax,$prato);
                                                $nregistos=mysqli_num_rows($result);
                                                $nome_prato=$registo('nome_prato');
                                                $Cod_Prato=$registo('Cod_Prato');
                                                
                                                for ($i=0; $i<$nregistos;$i++){
                                                    $registo=mysqli_fetch_assoc($result);
                                                    echo "<option value='$Cod_Prato'>".$registo('nome_prato')."</option>";
                                                }
                                              ?>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <select class="custom-select d-block form-control"  id="pessoas" required data-error="Insira a número de Pessoas">
                                              <option disabled selected>Insira as Pessoas*</option>
                                              <option value="1">1</option>
                                              <option value="2">2</option>
                                              <option value="3">3</option>
                                              <option value="4">4</option>
                                              <option value="5">5</option>
                                              <option value="6">6</option>
                                              <option value="7">7</option>
                                              <option value="8">8</option>
                                              <option value="9">9</option>
                                              <option value="10">10</option>
                                            </select>
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                </div>
                                
                                <div class="col-md-6">
                                    <h3>Informações de Contacto</h3>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <input type="text" class="form-control" id="nome" name="nome" placeholder="Nome" required data-error="Insira Seu Nome">
                                            <div class="help-block with-errors"></div>
                                        </div>                                 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <input type="text" placeholder="Email" id="email" class="form-control" name="email" required data-error="Insira o Seu Email">
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <input type="text" placeholder="Número de Telefone" id="telefone" class="form-control" name="phone" required data-error="Insira o Seu Número">
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <input type="text" placeholder="Morada" id="morada" class="form-control" name="Morada" required data-error="Insira a sua Morada">
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                    <div class="col-md-12">
                                        <div class="form-group">
                                            <input type="Text" placeholder="Código Postal" id="CodigoPostal" class="form-control" name="Código Postal" Value="0000-000" maxlength="8" required data-error="Insira o Seu Código Postal">
                                            <div class="help-block with-errors"></div>
                                        </div> 
                                    </div>
                                </div>
                                <div class="col-md-12">
                                    <div class="submit-button text-center">
                                        <button class="btn btn-common" id="submit"name="Submit" type="submit">Encomendar</button>
                                        <div id="msgSubmit" class="h3 text-center hidden"></div> 
                                        <div class="clearfix"></div> 
                                    </div>
                                </div>
                            </div>            
                        </form>
                    </div>
                </div>
            </div>

------------------------------------------------/-------------------------------------------------------
O de Cima é o formulário
O de Baixo é para onde vão os dados
------------------------------------------------/-------------------------------------------------------
<?php
//Conexão  à BD
require('ligacao.php');

echo $_GET("Submit");

for ($i=1; $i<$_GET("Submit");$i++){
    $Codi_Pedido = $Codi_Pedido + $i;
//Receber todos os códigos do prato pedidos pelo utilizador e associá-los ao cod. pedido
if(isset($_REQUEST('Cod_Prato1'))){
$entrada=   $_REQUEST('Cod_Prato1');
$insere="Insert into prato_levar (Cod_Pedido,Cod_Prato,Quant_dose) values($Codi_Pedido,'$entrada',)";
}
if(isset($_REQUEST('Cod_Prato2'))){
$Sopa= $_REQUEST('Cod_Prato2');
$insere="Insert into prato_levar (Cod_Pedido,Cod_Prato,Quant_dose) values($Codi_Pedido,'$Sopa',)";
}
if(isset($_REQUEST('Cod_Prato3'))){
$Prato_Principal=   $_REQUEST('Cod_Prato3');
$insere="Insert into prato_levar (Cod_Pedido,Cod_Prato,Quant_dose) values($Codi_Pedido,'$Prato_Principal',)";
}
if(isset($_REQUEST('Cod_Prato4'))){
$Sobremesa=$_REQUEST('Cod_Prato4');
$insere="Insert into prato_levar (Cod_Pedido,Cod_Prato,Quant_dose) values($Codi_Pedido,'$Sobremesa',)";
}
if(isset($_REQUEST('Cod_Prato5'))){
$Bebidas=   $
_REQUEST('Cod_Prato5');
$insere="Insert into prato_levar (Cod_Pedido,Cod_Prato,Quant_dose) values($Codi_Pedido,'$Bebidas',)";
}
}
$result=mysqli_query($ligax,$insere);
?>
<!DOCTYPE html>
<html>
<body>
<meta http-equiv="refresh" content="5; URL='Menu.php'"/>
<p style="text-align:center;font-size:300%;">
   Pedido Registado com Sucesso!
   <?php
    echo $Cod_Pedido;
   ?>
</p>
<?php
mysqli_close($ligax);
?>
</body>
</html>
´´´

array – Llamada GET siempre me trae una colección, ¿cómo hacer para traer 1 recurso por separado?

No puedo hacer que la respuesta que hago a una API sea “única”, en vez de devolverme un sólo recurso me trae una colección y necesito ver sólo un recurso.

  1. En mi controlador PlayVideosController hago una llamada hacia una API en donde le agrego una variable $id al parámetro de mi función, esta busca en la API la columna de _id, luego la guardo en una variable que guarda un array.
    public function thps4($id)
    {
        $id++;
        $thps4Videos = Http::get('http://thvid-api.herokuapp.com/videos/game/THPS4/$id/1')->json();
    
        $thps4Video = $thps4Videos(0);
        return view ('videos.thps4', compact('thps4Video'));
    }
  1. Esta información la paso a un componente de Livewire en donde realizo un forelse, y dentro tengo un <a href="">, aquì le paso el $key para poder seleccionar un recurso, esto como resultado me genera una URL asi: http:://thpsvido.com/videos/thps4/4
<div wire:init="loadTHPS4">
    <div>

        @forelse ($thps4Results as $key => $thps4)
            <div wire:key="results-{{ $thps4('_id') }}">
                <img src="{{ $thps4('Thumbnail') }}">
                    <div>
                        <a class="relative bottom-4" href="videos/thps4/{{ $key }}">
                            <svg>
                            </svg>
                        </a>

                        <p class="text-sm font-semibold ml-14">
                            {{ $thps4('Title') }}
                        </p>
                    </div>
            </div>
        @empty
            @foreach (range(1,6) as $thumbnail)
                <div wire:key="empty-{{ $thumbnail }}">
                    <p>cargando...</p>
                </div>
            @endforeach
        @endforelse
    </div>
</div>
  1. Al hacer clic en el href uno es redireccionado a otra página en donde existe un elemento de tipo <video>, y utilizando una librería, VideoJS hago que se carge un video de Youtube. Es en las propiedades de la librería en donde escribo la dirección, y aquí en la dirección: reemplazo el ID del video de youtube con la variable que tengo en mi controlador. Aquí, la variable de $key ya tiene que haber asociado la posición de un array, con la columna ID. Y esto debería de suceder para todas las arrays, obteniendo un video con un ID diferente.
    <div class="pt-20 h-full w-screen">
        <video
            id="vid1"
            class="video-js"
            controls
            autoplay="true"
            preload="auto"
        >
      </video>

        <div
            x-data="{close: true}"
            x-show="close"
            class="text-center"
        >
            <p class="text-sm text-gray-500">
              Mute is enabled by default, sorry for the inconveniences
            </p>
            <p 
                x-on:click="close = false"
                class="text-green-500 text-sm cursor-pointer"
            >
                close
            </p>
        </div> {{-- inconveniences message --}}

    </div>
    
    <!-- videojs -->
    <script src="//vjs.zencdn.net/7.10.2/video.min.js"></script>
    <script src="{{ asset ('/js/Youtube.min.js') }}"></script>
    
    <script>
        var player = videojs('vid1', { 
            "techOrder": ("youtube"), 
            "sources": ({ "type": "video/youtube", 
            "src": "http://www.youtube.com/watch?v={{ $thps4Video('ID') }}"}),
            "fluid": true,
            "autoplay": true
        });
        player.ready(function() {
            setTimeout(function() {
                player.autoplay('muted');
                player.volume(0.5);
                player.fluid('true')
            }, 2000);
        });
    </script>

Dependiendo de la URL, un video diferente se debería de cargar cada vez que se hace clic, ya que si la URL es la siguiente http:://thpsvido.com/videos/thps4/4 entonces deberíamos de cargar sólamente un video, y ese sería el que esté en la posición 4. Otro ejemplo, si la dirección es la siguiente: http:://thpsvido.com/videos/thps4/5, entonces debería de devolver el de la posición 5.

No importa cual sea el número que aparezca en la URL, por ejemplo, puede ser: http://thvid-api.herokuapp.com/videos/game/THPS4/$id/2, aquí se cargan 2 videos debería de ver sólamente 1, el de la posición 2.

Si hago un dd($thps4Videos) en mi función y le doy clic al video que sea, siempre me devuelve el mismo video en el array.

Un array dentro de la colección tiene estas columnas:

array:1 (▼
  0 => array:8 (▼
    "_id" => "605a43ea667cd39060f435ac"
    "Title" => "THPS4 Rewind: Summer Of 2003 Unreleased (Edited by Maxfli)"
    "Game" => "THPS4"
    "ID" => "Qxd7D1KN1No"
    "Thumbnail" => "https://i.ytimg.com/vi_webp/Qxd7D1KN1No/maxresdefault.webp"
    "newduration" => "00:22:53"
    "category" => "gameplay"
    "updatedAt" => "2021-04-12T17:45:27.167Z"
  )
)

No tengo ningun error en cuanto a excepciones o mensajes de error.

Estoy utilizando una librería Javascript llamada VideoJS, versión 7.10.2, estoy usando Mozilla Firefox en Windows 10. También estoy utilizando la extensión de Youtube de esta misma librería.
VideoJS: https://github.com/videojs/video.js
Youtube extension: https://github.com/videojs/videojs-youtube

La API recolecta estos datos de Youtube.

Como fazer um loop em python que imprima 50 itens por vez?

Tenho uma lista com 5.668 linhas, eu quero criar um loop que imprima 50 linhas, pare por 1 minuto, e depois imprima mais 50 linhas, pare por mais 1 minuto, e assim por diante até chegar na última linha (5.668).

A questão de parar por 1 minuto, irei usar o: sleep(60)

O que eu não sei mesmo é como criar o loop.

​Sou iniciante em python, por isso por favor, peço que expliquem passo a passo do código que irá resolver esse meu problema para eu conseguir aprender e entender, ao invés de só copiar e colar.

Sou extremamente grata por qualquer ajuda!

Laravel cerrar sesión por inactividad utilizando Socialize

Les dejo una pregunta sobre un proyecto en la cual, estoy queriendo implementar algo dentro de todo sencillo pero que no me está dando bola y no logro darme cuenta por que.

El proyecto está hecho con Laravel 6. Estoy utilizando Socialize para logueo con Google. Lo que quiero resolver es que, al cabo de cierta cantidad de minutos de inactividad, se me cierre la sesión de manera automática.

Busque por todos lados, cambiando el valor del archivo de configuraciones en sessions.php -> ‘lifetime’, pero no me da mucha bola. Obviamente agregue en mi logueo el Auth::check() para que se implemente, segun lo que vi en la documentación de laravel, pero tampoco tuve resultados.

Espero puedan ayudarme con este pequeño inconveniente. Desde ya muchas gracias.

Representación de una función por partes en 3d en Jupyter Notebook

import numpy as np
import matplotlib.pyplot as plt
             
num_steps = 100
x_arr = np.linspace(0,100, num_steps)
z_arr = np.linspace(0,20, num_steps)

def yfunc(x, z):
    y1 = (255.52*x + 26.56*z - 480.72)/(170.36)
    y2 = (-0.2*x**2 + 9.9*x - 92.18)
    y3 = (-170.28*x - 336.5*z +6090.61)/(34.1)
    return np.piecewise((y1, (z<=18.1) & (x<=20.71)), (y2, (z<=18.1) & (x<=29.18)), (y3, (z<=18.1) & (x<=0)))

x,z = np.meshgrid(x_arr, z_arr)
y =yfunc(x,z)

fig=plt.figure()
ax=fig.subplot(1,1,1,projection='3d')
p = x.plot_surface(x,z,y,rstride=1,cstride=1,cmap=cm.coolwarm,linewidth=0,antialiased=False)
plt.show()

El error que me da es:

IndexError: boolean index did not match indexed array along dimension 0; dimension is 2 but corresponding boolean dimension is 100

Por que las cadenas en python (y en Java) son inmutables?

-La pregunta es muy simple, ¿Por que las cadenas son inmutables? o mas bien: ¿Por que las cadenas no son mutables?. Por lo que se esto solo se da en Python y en Java…