Php 使用文件获取属性
我有一个存储在变量中并显示的sql查询。我从另一个文件中获取这个文件的内容,我想恢复一些代码(这是html),以便创建链接。更准确地检索id。 My api.phpPhp 使用文件获取属性,php,html,get,file-get-contents,Php,Html,Get,File Get Contents,我有一个存储在变量中并显示的sql查询。我从另一个文件中获取这个文件的内容,我想恢复一些代码(这是html),以便创建链接。更准确地检索id。 My api.php $base = mysql_connect ('localhost','root',''); mysql_select_db('administrations', $base); if(isset($_GET['cp'])) { $sql = 'SELECT NOM_organisme, ID_organisme
$base = mysql_connect ('localhost','root','');
mysql_select_db('administrations', $base);
if(isset($_GET['cp']))
{
$sql = 'SELECT NOM_organisme, ID_organisme
FROM organismes
WHERE code_postal LIKE "%'.$_GET['cp'].'%"
ORDER BY NOM_organisme;';
$req = mysql_query($sql) or die('SQL Error !<br>'.$sql.'<br />'.mysql_error());
}
while ($data = mysql_fetch_array($req))
{
echo '<p id="'.$data['ID_organisme'].'"'.
$data['NOM_organisme'].'</br>'.
$data['ID_organisme'].'</p></br>';
}
我如何才能在我的index.php中获得
id=“
”?我理解您的意图,但如果不知道这段小代码的用途,我就不会觉得它合乎逻辑:)
你有链接或类似的东西吗
基本上我应该做的是:
$base = mysql_connect ('localhost','root','');
mysql_select_db('administrations', $base);
if(isset($_POST['cp']))
{
$sql = 'SELECT NOM_organisme, ID_organisme FROM organismes WHERE code_postal LIKE "%'.$_GET['cp'].'%" ORDER BY NOM_organisme;';
$req = mysql_query($sql) or die('SQL Error !<br>'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req))
{
echo '<p id="'.$data['ID_organisme'].'"'.$data['NOM_organisme'].'</br>'.$data['ID_organisme'].'</p></br>';
}
} else {
echo 'show something else';
}
$base=mysql\u connect('localhost','root','';
mysql_select_db('administrations',$base);
如果(isset($_POST['cp']))
{
$sql='从邮政编码为“%”的组织中选择名称组织,ID组织。$获取['cp']。“%”按名称组织订购;';
$req=mysql\u query($sql)或die('sql Error!
'.$sql'.
'.mysql\u Error());
而($data=mysql\u fetch\u数组($req))
{
echo'请查看php get文档。您需要使用url参数链接到脚本,并在php代码中访问它们
如果不想使用url参数,可以使用post值
如果我没弄错,你就是
在index.php中使用文件_GET_contents()向您的网站发送GET请求
该网站(api.php)执行SQL查询并以HTML格式打印结果
php获取此HTML输出并将其存储在变量$var中
您希望检索段落id属性中包含的所有值
在这种情况下,您可能希望使用正则表达式。这似乎是合适的。它应该适用于您,如下所示:
$out = array();
preg_match_all("/id=\"([^\"]*?)\"/U", $var, $out);
foreach ($out as $value) {
echo 'I found some id ' . htmlspecialchars($out[$value][2]) . '<br />';
}
$out=array();
preg\U match\U all(“/id=\”([^\“]*?)\”/U“,$var,$out);
foreach(按$value计算){
echo“我找到了一些id”。htmlspecialchars($out[$value][2])。
;
}
此外:
在这种情况下,一个像样的HTML解析器更合适(例如,它与流文本中的id=“X”不匹配)
您的PHP代码易受攻击
您应该将纯文本清理为HTML
首先,您应该尝试将API回复显示为JSON字符串,这样更方便
如果您仍然想使用api.php,首先需要关闭开头的段落!您确实忘记了一个“>”
echo '<p id="'.$data['ID_organisme'].'">'.
$data['NOM_organisme'].'</br>'.
$data['ID_organisme'].'</p></br>';
echo'”。
$data['NOM_organime'].'。
$data['ID_organime'].
';
然后你需要分析你的段落。
你可以这样做:
if(isset($_POST['cp']))
{
$api = "http://mywebsite.fr/api.php?cp=".$_POST['cp'];
$var = file_get_contents($api);
preg_match("@<p id='(.*)'@", $var, $matches);
id = $matches[1];
echo $id;
}
if(isset($\u POST['cp']))
{
$api=”http://mywebsite.fr/api.php?cp=“$_POST['cp'];
$var=文件获取内容($api);
preg_match(“@不,我没有链接,这是我在php代码Datacode postal
之前在api.php中的所有代码。这是我的所有代码。
$out = array();
preg_match_all("/id=\"([^\"]*?)\"/U", $var, $out);
foreach ($out as $value) {
echo 'I found some id ' . htmlspecialchars($out[$value][2]) . '<br />';
}
echo '<p id="'.$data['ID_organisme'].'">'.
$data['NOM_organisme'].'</br>'.
$data['ID_organisme'].'</p></br>';
if(isset($_POST['cp']))
{
$api = "http://mywebsite.fr/api.php?cp=".$_POST['cp'];
$var = file_get_contents($api);
preg_match("@<p id='(.*)'@", $var, $matches);
id = $matches[1];
echo $id;
}