In php una stringa racchiusa da apici doppio o singolo, indica del testo.
$string1 = 'stringa 1\'' . ' parte concatenata'; //Outup: stringa 1' parte concatenata
$string2 = "stringa 2";
L'elemento input che è markup html normalmente racchiude gli attributi con apice doppio o singolo. Se è il sorgente indubbiamente non ti da problemi, se invece php deve produrre la stringa dovrai effettuare l'escape con il backslash \ ad esempio $var = '\''; Output: '
Comunque stai creando dinamicamente $numero in php, perché non aggiungi solo l'output prodotto da php?
<?php
//pagina creazione numero
//e form
$numero = 10;
?>
<form name='modulo' action='elabora2.php' method='post'>
<input name="test" type="text" value="<?php echo $numero; ?>">
<input name="submit" value="invia">
</form>
<?php
//elabora2.php
if(!isset($numero)) {
$numero = null;
}
if($numero !== null && isset($_POST['text']) && trim($_POST['text'], '0123456789') === '' && $_POST['text'] === (string) $numero) {
echo 'il numero corrisponde';
}
?>