Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回下划线的简单HTML DOM_Php_Html - Fatal编程技术网

Php 返回下划线的简单HTML DOM

Php 返回下划线的简单HTML DOM,php,html,Php,Html,好的,我使用简单的HTMLDOM()从页面获取一些数据 我想获得的数据是以下选择器选项: <select name="element" class="selectbox"> <option value="1">O18FB-B1</option> <option value="2">O18FB-B2</option> <optio

好的,我使用简单的HTMLDOM()从页面获取一些数据

我想获得的数据是以下选择器选项:

<select name="element" class="selectbox">
    <option value="1">O18FB-B1</option>
    <option value="2">O18FB-B2</option>
    <option value="3">O18FB-D1</option>
    <option value="4">O18FB-D2</option>
    <option value="5">O19BA-B</option>
    <option value="6">O19BA-C1</option>
    <option value="7">O19BA-C2</option>
    <option value="8">O19FAMA</option>
    <option value="9">O20BA-D1</option>
    <option value="10">O20BA-D2</option>
    <option value="11">O20BA-E1</option>
    <option value="12">O20BA-E2</option>
    <option value="13">O20FAMA1</option>
    <option value="14">O20FAMA2</option>
    <option value="15">O20FAMB1</option>
    <option value="16">O20FAMB2</option>
    <option value="17">O18AO-A</option>
    <option value="18">O18IB-A</option>
    <option value="19">O19AO-A</option>
    <option value="20">O19IB-A</option>
    <option value="21">O19MBIA</option>
    <option value="22">O20AMTA</option>
    <option value="23">O20EITA</option>
    <option value="24">O20EITB</option>
    <option value="25">O20SD-A</option>
    <option value="26">O20SD-B</option>
    <option value="27">O20SD-C</option>
    <option value="28">O18JD-A</option>
    <option value="29">O18JD-B</option>
    <option value="30">O18JD-C</option>
    <option value="31">O19JD-A</option>
    <option value="32">O19JD-B</option>
    <option value="33">O19JD-C</option>
    <option value="34">O20JD-A</option>
    <option value="35">O20JD-B</option>
    <option value="36">O20JD-C</option>
    <option value="37">O18MMCA</option>
    <option value="38">O18MMCB</option>
    <option value="39">O19MFAA</option>
    <option value="40">O19MMCA</option>
    <option value="41">O19MMCB</option>
    <option value="42">O19MSRA</option>
    <option value="43">O20MMCA</option>
    <option value="44">O20MMCB</option>
    <option value="45">O20MMCC</option>
    <option value="46">O20OABA</option>
    <option value="47">O20OABB</option>
    <option value="48">O18OMSA</option>
    <option value="49">O19OMSA</option>
    <option value="50">O20OMSA</option>
    <option value="51">O20OMSB</option>
    <option value="52">O18CT</option>
    <option value="53">O19CT</option>
    <option value="54">O20CT</option>
</select>
然后使用以下代码将其显示在我的页面上:

$options = new GetOptions();
$classes = $options->getClasses();
foreach ($classes as $class) {
    $optionFormat = '<option value="%s">%s</option>';
    $optionValue = $class->value;
    $optionText = $class->plaintext;
    echo sprintf($optionFormat, $optionValue, $optionText);
}
$options=new GetOptions();
$classes=$options->getClasses();
foreach($classes作为$class){
$optionFormat='%s';
$optionValue=$class->value;
$optionText=$class->纯文本;
echo sprintf($optionFormat、$optionValue、$optionText);
}
但当我查看我的页面时,我得到的是(字面上是从chrome inspect元素复制的):


________________________                               

有人知道我做错了什么吗?我已经看了页面,没有包含此内容的select元素。。。提前感谢。

您的代码是正确的,但没有数据

请查看您的页面来源。不是在inspector中,而是最初进入浏览器的原始源代码。在chrome中,您可以在windows(查看源代码)上使用
ctrl+u
。这样,您将看到您请求的页面在浏览器中的html
select
item中不包含任何值。这些值稍后会用javascript函数填充,但不幸的是,简单HTMLDOM不运行javascript,因此无法使用此库进行刮取


您需要寻找能够运行javascript的东西。也许可以选择一些无头浏览器。如果您需要坚持使用PHP,可以从以下内容开始:或此处:

尝试使用以下内容:
echo'$类->纯文本。“(注释掉该foreach中的其余部分)…感谢您的注释,但是,这给出了相同的结果<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?不知何故,我在问题中完全忽略了这一点。
$options = new GetOptions();
$classes = $options->getClasses();
foreach ($classes as $class) {
    $optionFormat = '<option value="%s">%s</option>';
    $optionValue = $class->value;
    $optionText = $class->plaintext;
    echo sprintf($optionFormat, $optionValue, $optionText);
}
<select name="class" class="selector w-full block border border-gray-400 rounded-lg p-3 outline-none">
                        ________________________                               </select>